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

本文关键字:asp net 十进制 分离 整数 | 更新日期: 2023-09-27 18:10:00

我在寻找指导,有人能帮我吗?

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

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

对不起,我不小心添加了两次持续时间。

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

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

如果您要分割的值是一个数字,请尝试:

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

如果是字符串,CLandry的答案应该是正确的,duration[0]是整数部分,duration[1]是小数部分

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

Duration是一个字符串数组。时长[0]为小数点前的部分,时长[1]为小数点后的部分。

使用区域性的小数分隔符进行分割,因此它也应该在全局范围内工作。

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

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);

您可以使用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);
}