2014-09-27 28 views

回答

1
Convert.ToDouble(string value) 

此功能封装方法

Number.ParseDouble(string value, NumberStyles option, NumberFormatInfo numfmt) 

numfmt参数取决于当前的文化。 因此,看起来你现在的文化支持另一种双格式,例如“2345,45”。 更好的方法是使用一个超载的double.Parse()方法并明确指定文化。

一个合适的例子提供给您斯宾塞ķ

var sal = "23445.56"; 
Console.WriteLine(double.Parse(sal, System.Globalization.CultureInfo.InvariantCulture)*.02); 
+0

请通过使用示例告诉我如何,因为我没有做到这一点。我是一个编程新手,所以请不要对我不满意,我真的需要帮助 – 2014-09-27 20:22:04

+0

寻找更新后。看着你的意见,我想你应该在编码之前阅读关于C#的东西。最好的新手是[Pro C#5.0和.NET 4.5框架](http://www.apress.com/9781430242338)Andrew Troelsen – Jonik 2014-09-27 20:40:05

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成功转换,结果将是真实的,并且double值将被存储在t中。

+0

当我用这个例子没有输出此行 – 2014-09-27 19:29:11

0

这正常工作与.NET框架V4.5

string sal = "2345.56"; 
Console.Out.WriteLine(Convert.ToDouble(sal) * .02); 

结果:46.9112

+0

我已经安装了.NET Framework v4.5.2但我仍然不看到任何变化 – 2014-09-27 19:28:01