double.Parse显然不适用于某个国家
基本上,我有这个非常简单的计算:
int bTaxPrice = int.Parse(prices[wep]); double t = double.Parse("1." + taxes); double price = Math.Round(t * bTaxPrice);
我将举例说明计算应该如何工作,比如说t=1.1
和bTaxPrice=1279
,然后是1.1*1279 = 1406.9
,但是因为我将结果四舍五入,所以价格等于1407。
对于使用我的C#Winforms程序的其他国家/地区(丹麦)的某些用户遇到的问题导致数字不能舍入,而是添加小数点后的最后2位数。
我们上面计算的结果是1407,对于他们来说是140690。
我在互联网上看到它,有些国家有小数点特殊的东西。
对这类问题有什么好处?
实际上,许多国家/地区使用逗号作为小数点分隔符。 如果要将点用作分隔符,请使用不变的CultureInfo
:
double.Parse("1." + taxes, CultureInfo.InvariantCulture);
某些国家/地区使用逗号作为小数点分隔符。 您可以通过向double.Parse
方法提供CultureInfo.InvariantCulture
来解决此问题。