如何在 C# 中将十进制数从字符串解析为整数?
How do I parse a decimal number from a string to an integer in C#?
我想将十进制字符串转换为整数,但我一直收到以下错误:
System.FormatException: Input string was not in a correct format.
var myString = "18.7";
var myInteger = Int32.Parse(myString); //flaging an error here
Console.WriteLine(myInteger) //desired result = 18
您应该将其解析为双精度类型并将其转换为整数
var myString = "18.7";
var myInteger = (int)Convert.ToDouble(myString);
Console.WriteLine(myInteger) //desired result = 18
转换会像这样
- “18.7”(字符串值)到 18.7(双精度值)
- 18.7(双精度类型)到 18(整数类型 - 小数部分被删除)
在某些情况下,您的字符串可能类似于 18,7
,它依赖于 CultureInfo
进行转换。这使得 18.7
无法格式化。
关于文化独立性,你可以像下面这样转换
var myString = "18.7";
var myInteger = (int)Convert.ToDouble(myString,CultureInfo.InvariantCulture.NumberFormat);
Console.WriteLine(myInteger) //desired result = 18
我想将十进制字符串转换为整数,但我一直收到以下错误:
System.FormatException: Input string was not in a correct format.
var myString = "18.7";
var myInteger = Int32.Parse(myString); //flaging an error here
Console.WriteLine(myInteger) //desired result = 18
您应该将其解析为双精度类型并将其转换为整数
var myString = "18.7";
var myInteger = (int)Convert.ToDouble(myString);
Console.WriteLine(myInteger) //desired result = 18
转换会像这样
- “18.7”(字符串值)到 18.7(双精度值)
- 18.7(双精度类型)到 18(整数类型 - 小数部分被删除)
在某些情况下,您的字符串可能类似于 18,7
,它依赖于 CultureInfo
进行转换。这使得 18.7
无法格式化。
关于文化独立性,你可以像下面这样转换
var myString = "18.7";
var myInteger = (int)Convert.ToDouble(myString,CultureInfo.InvariantCulture.NumberFormat);
Console.WriteLine(myInteger) //desired result = 18