我对下面的一小段代码感到困惑,因为我无法按照预期返回957。我有点尴尬发帖,但我看不出问题。
using System;
namespace ConsoleApp1
{
internal class Program
{
private static void Main(string[] args)
{
Console.WriteLine(ConvertToInteger("957.13"));
}
private static string ConvertToInteger(string timeStartIn)
{
Int32.TryParse(timeStartIn, out var timeStart);
return timeStart.ToString();
}
}
}
答案 0 :(得分:4)
您应该检查Int32.TryParse方法帮助。 它说:
当此方法返回时,如果转换成功,则包含等效于s中包含的数字的32位有符号整数值;如果转换失败,则包含零。
由于957.13
是表示十进制值的字符串,因此TryParse方法返回0,因为十进制数不是整数。
答案 1 :(得分:0)
您正在处理浮点数或小数类型,使用地板或天花板功能,然后您可以将其转换为完整数字整数。您还可以将其转换为字符串并将其拆分为小数点,然后仅使用第一个段并将其转换为完整的整数。
注意:字符串方法不考虑舍入。