我的代码:
string sal = "2345.56";
Console.Writeline(Convert.ToDouble(sal) * .02);
请帮我解决这个例外:
System.FormatException
答案 0 :(得分:1)
Convert.ToDouble(string value)
此函数封装方法
Number.ParseDouble(string value, NumberStyles option, NumberFormatInfo numfmt)
numfmt 参数取决于当前文化。 因此,看起来您当前的文化支持另一种双重格式,例如“2345,45”。 更好的方法是使用重载的 double.Parse()方法之一并明确指定文化。
一个正确的例子给你 Spencer K
var sal = "23445.56";
Console.WriteLine(double.Parse(sal, System.Globalization.CultureInfo.InvariantCulture)*.02);
答案 1 :(得分:0)
string test = "2345.56";
double t;
bool result = double.TryParse(test, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out t);
MessageBox.Show(result ? "Worked! Value: " + t : "Didn't work.");
如果TryParse成功转换,则结果为true,double值将存储在t中。
答案 2 :(得分:0)
这适用于.NET Framework v4.5
string sal = "2345.56";
Console.Out.WriteLine(Convert.ToDouble(sal) * .02);
结果:46.9112