-2

如何将字符串转换为 int?我知道使用了 convert.ToInt32。但它失败了。错误是输入字符串的格式不正确。字符串 s1 = "12.00"

4

4 回答 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 回答