如何将字符串转换为 int?我知道使用了 convert.ToInt32。但它失败了。错误是输入字符串的格式不正确。字符串 s1 = "12.00"
问问题
29167 次
4 回答
6
.
我喜欢小数点分隔符始终是点 ( )的假设。您最好使用InvariantCulture
,其中包含一个 NumberFormat ,它明确地将点指定为小数分隔符:
Convert.ToInt32(Convert.ToDouble("12.00", CultureInfo.InvariantCulture));
澄清一下:世界一半使用点,另一半使用逗号。当我在具有荷兰文化的 PC 上运行它并且未指定 CultureInfo 时,它采用系统默认值(逗号)并返回1200
,忽略点。
虽然它不会直接影响您的问题,但它的压力还是不够。
于 2012-05-22T11:30:07.040 回答
4
错误是因为字符串是"12.00"
首先将字符串转换为双倍而不是 int
int a = Convert.ToInt32(Convert.ToDouble("12.00"));
或者
如果你只想要它的整数部分而不是
string s= "12.00";
string[] words = s.Split('.');
int a = Convert.ToInt32(words[0]);
还要检查 SO 上已经回答的线程:C# Convert String Decimal to Int
于 2012-05-22T11:25:10.847 回答
3
“12.00”是十进制数,而不是整数。整数没有小数部分。在Convert.ToDouble
调用. _.
Convert.ToInt32
于 2012-05-22T11:23:45.450 回答
1
字符串“12.00”是双/十进制值。使用 Double.Parse() 或 Double.TryParse() 或 Convert.ToDouble()。
于 2012-05-22T11:24:41.443 回答