C# &引用;值的格式不正确";将字符串转换为int32时出错
这是我的密码C# &引用;值的格式不正确";将字符串转换为int32时出错,c#,string,double,int32,C#,String,Double,Int32,这是我的密码 string a="11.4"; int b,c; b=2; c= convert.toint32(a) * b 我得到这个错误 输入字符串的格式不正确 如何转换“a” 嗯a不是一个整数值-您可以使用Convert.ToDouble()来代替。为防止可能出现的解析错误,请改用double.TryParse(): string a = "11.4"; double d; if (double.TryParse(a, out d)) { //d now contain
string a="11.4";
int b,c;
b=2;
c= convert.toint32(a) * b
我得到这个错误
输入字符串的格式不正确
如何转换“a” 嗯
a
不是一个整数值-您可以使用Convert.ToDouble()
来代替。为防止可能出现的解析错误,请改用double.TryParse()
:
string a = "11.4";
double d;
if (double.TryParse(a, out d))
{
//d now contains the double value
}
编辑:
考虑到注释,当然最好指定区域性设置。下面是一个使用文化无关设置和double.TryParse()
的示例,其结果是11.4
:
if (double.TryParse(a, NumberStyles.Number, CultureInfo.InvariantCulture, out d))
{
//d now contains the double value
}
嗯,
a
不是一个整数值-您可以使用Convert.ToDouble()
。为防止可能出现的解析错误,请改用double.TryParse()
:
string a = "11.4";
double d;
if (double.TryParse(a, out d))
{
//d now contains the double value
}
编辑:
考虑到注释,当然最好指定区域性设置。下面是一个使用文化无关设置和double.TryParse()
的示例,其结果是11.4
:
if (double.TryParse(a, NumberStyles.Number, CultureInfo.InvariantCulture, out d))
{
//d now contains the double value
}
乍一看,数字文字“11.4”不是实际的“int”。尝试其他转换格式,例如ToDouble() 我试过用C#编写以下代码以供参考
string a = "11.4";
double num_a = Convert.ToDouble(a);
int b = 2;
double ans = num_a * b;
乍一看,数字文字“11.4”不是实际的“int”。尝试其他转换格式,例如ToDouble() 我试过用C#编写以下代码以供参考
string a = "11.4";
double num_a = Convert.ToDouble(a);
int b = 2;
double ans = num_a * b;
a
是无效的int,它是double
a
是无效的int,它是double
。旁注:根据区域性设置,11.4可能会将OK解析为整数(如果“.”是组分隔符);它也可能无法解析为double(如果十进制分隔符为“,”)。解析值时指定区域性是一种很好的做法。@BrokenGlass,您对d
有什么期望<代码>11.4或114.0
?根据文化的不同,两者都是正确的。获取异常输入字符串的格式不正确
比错误的valueSide更安全注意:根据区域性设置,11.4可能实际将OK解析为整数(如果“.”是组分隔符);它也可能无法解析为double(如果十进制分隔符为“,”)。解析值时指定区域性是一种很好的做法。@BrokenGlass,您对d
有什么期望<代码>11.4或114.0
?根据文化的不同,两者都是正确的。获取异常输入字符串的格式不正确
比错误的值更安全,我的VS2010调试器显示ans=228.0
。读阿列克谢·列文科夫的comment@L.B 228.0? 真奇怪。您是否尝试过分解代码并逐步找出每个变量的确切值?这并不奇怪。只需在代码Thread.CurrentThread.CurrentCulture=System.Globalization.CultureInfo.GetCultureInfo(“tr-tr”)之前添加这一行即可
或Thread.CurrentThread.CurrentCulture=System.Globalization.CultureInfo.GetCultureInfo(“de”)代码>@L.B哦,我看了阿列克谢的评论后才知道。谢谢您的提醒!:)我的VS2010调试器显示ans=228.0
。读阿列克谢·列文科夫的comment@L.B 228.0? 真奇怪。您是否尝试过分解代码并逐步找出每个变量的确切值?这并不奇怪。只需在代码Thread.CurrentThread.CurrentCulture=System.Globalization.CultureInfo.GetCultureInfo(“tr-tr”)之前添加这一行即可
或Thread.CurrentThread.CurrentCulture=System.Globalization.CultureInfo.GetCultureInfo(“de”)代码>@L.B哦,我看了阿列克谢的评论后才知道。谢谢您的提醒!:)