我正在寻找指导可以有人帮助我吗?
我需要将持续时间的值分成整数和小数。
编辑:我在一个页面中有一个文本框。如果有人输入1.5并且它被存储在持续时间中,我想在另一个页面中检索它,我想将整个数字存储在文本框中,十进制数将根据响应从下拉列表中选择一个值。
抱歉,我偶然增加了两次持续时间。
context.Response.Write(dr["Title"].ToString()
+ '|' + dr["CourseId"].ToString() + '|' + dr["duration"].ToString()
+ '|' + dr["Code"].ToString() + '|'
+ dr["Category"].ToString() + School.NewLine);
答案 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);
}