法语系统小数点的处理。Convert.ToDouble(string str)的问题


.net提供了个函数处理 把string装换成 double


例如:

double d = Convert.ToDouble("2.5")

d:2.5


但是法语系统中 ,字符串2.5会写成2,5 注意是逗号,不是小数点了。

当然一般情况下会正常输出

double d = Convert.ToDouble("2,5")

d: 2,5 

但也有不能正确输出的情况,时有发生。 但不是每次都能出现。

我这个项目中 dll都是处理正确的,只有device.exe 中出现了

double d = Convert.ToDouble("2,5")

d: 25 

这确实很头疼。以后尽量避免这样的用法。

overstack提供的方式是

In case of your first double (as you ask for it): it seems to be culture related problem, try this it should work (replacing . with ,):

Console.WriteLine(Convert.ToDouble("52,8725945"));

In such a case you should parse your string e.g. double.Parse:

double.Parse("52.8725945", System.Globalization.CultureInfo.InvariantCulture);

On the other hand you have incorrect double later in your string.

解释

CultureInfo.InvariantCulture 属性

获取不依赖于区域性(固定)的 CultureInfo 对象。

命名空间:     System.Globalization
程序集:   mscorlib(位于 mscorlib.dll)



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值