1

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

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

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

抱歉,我意外添加了两次持续时间。

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

4 回答 4

8

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

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

如果 is 是一个字符串,CLandry 的答案应该有效,duration[0] 将是整个部分,duration[1] 将是小数部分。

于 2013-04-19T19:55:58.850 回答
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] 是小数点后的部分。

拆分是通过使用它的文化的小数分隔符完成的,因此它也应该在全局范围内工作。

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

于 2013-04-19T19:52:54.730 回答
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);
于 2013-04-19T19:55:17.300 回答
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);
}
于 2013-04-19T19:55:46.897 回答