试图分离整数和十进制asp.net c#

时间:2013-04-19 19:48:04

标签: c# asp.net

我正在寻找指导可以有人帮助我吗?

我需要将持续时间的值分成整数和小数。

编辑:我在一个页面中有一个文本框。如果有人输入1.5并且它被存储在持续时间中,我想在另一个页面中检索它,我想将整个数字存储在文本框中,十进制数将根据响应从下拉列表中选择一个值。

抱歉,我偶然增加了两次持续时间。

context.Response.Write(dr["Title"].ToString()
    + '|' + dr["CourseId"].ToString() + '|' + dr["duration"].ToString()
 + '|' + dr["Code"].ToString() + '|'
    + dr["Category"].ToString() + School.NewLine);

4 个答案:

答案 0 :(得分:8)

如果您要分割的值是数字,请尝试以下操作:

decimal number = 12.34;
int wholePart = decimal.Truncate(number);
decimal fractionPart = number - wholePart;

如果is是一个字符串,那么CLandry的答案应该有效,持续时间[0]将是整个部分,持续时间[1]将是分数部分。

答案 1 :(得分:3)

var duration = dr["duration"].ToString().Split(CultureInfo.InvariantCulture.NumberFormat.NumberDecimalSeparator);
int durationWhole = Int32.Parse(duration[0]);
int durationDecimal = Int32.Parse(duration[1]);

持续时间将是一个字符串数组。 duration [0]是小数点前面的数字的一部分,duration [1]是后面的部分。

分裂正在使用文化的小数分隔符完成,所以它也应该全局工作。

根据您问题中的修改,我已更新答案,以便为您提供数值结果。现在您可以根据需要使用数字或字符串。

答案 2 :(得分:0)

context.Response.Write(dr["Title"].ToString()
    + '|' + dr["CourseId"].ToString() + '|' + dr["duration"].ToString().Split('.')[0]
    + '|' + dr["duration"].ToString().Split('.')[1] + '|' + dr["Code"].ToString() + '|'
    + dr["Category"].ToString() + School.NewLine);

答案 3 :(得分:0)

您可以使用Substrings和IndexOf:

{ context.Response.Write(
    dr["Title"].ToString() + '|' + 
    dr["CourseId"].ToString() + '|' + 
    dr["duration"].ToString().Substring(0, dr["duration"].ToString().IndexOf(".")) + '|' + 
    dr["duration"].ToString().Substring(dr["duration"].ToString().IndexOf("."), dr["duration"].ToString().Length()) + '|' + 
    dr["Code"].ToString() + '|' + 
    dr["Category"].ToString() + 
    School.NewLine);
}