为什么double.Parse(" 0.05英寸)返回5.0?Parse、double、QUOT

2023-09-03 01:33:24 作者:旧伤逼我嚣张

我读从我的App.config的值;这就是:

I am reading a value from my App.config; which is:

 <add key="someValue" value="0.05"/>

和我尝试将其转换为加倍做:

And I try to convert it to double by doing:

 var d = double.Parse(ConfigurationManager.AppSettings["someValue"]);

和我获得0.05 5.0 insteads。

And I obtain 5.0 insteads of 0.05.

你能指点?我该怎么办错了,我应该怎么分析呢?

Can you advice? What do I do wrong and how should I parse this?

推荐答案

这对你的文化设置,测试相同,但有一个逗号,而不是一个点,你会看到这项工作的

That's for your culture settings, Test the same but with a comma instead a point and you will see that work's

var d = double.Parse("0,05");

要修复这个问题,你可以用来解析函数的后续超载

To fixed this problem you could used the follow overload of the parse function

var d = double.Parse(ConfigurationManager.AppSettings["someValue"], CultureInfo.InvariantCulture);