如何将字符串转换为int?

时间:2012-05-22 11:23:00

标签: asp.net

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

4 个答案:

答案 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()。