如何将字符串转换为int?我知道convert.ToInt32已使用。但它失败。错误输入字符串格式不正确。 字符串s1 =“12.00”
答案 0 :(得分:6)
我喜欢小数分隔符总是一个点(.
)的假设。你最好使用InvariantCulture
,它包含一个明确指定点作为小数分隔符的NumberFormat:
Convert.ToInt32(Convert.ToDouble("12.00", CultureInfo.InvariantCulture));
澄清:half the world uses the dot, the other half a comma。当我在具有荷兰文化的PC上运行它并且没有指定CultureInfo时,它采用系统默认(逗号)并返回1200
,忽略点。
虽然它并没有直接影响你的问题,但这是不够强调的。
答案 1 :(得分: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
答案 2 :(得分:3)
“12.00”是十进制数,不是整数。整数没有小数部分。在调用.
之前,使用Convert.ToDouble
或类似物来获取浮点数,或修剪字符串的小数部分(Convert.ToInt32
以及后面的内容)。
答案 3 :(得分:0)
字符串“12.00”是双/小数值。使用Double.Parse()或Double.TryParse()或Convert.ToDouble()。