double.Parse显然不适用于某个国家

基本上,我有这个非常简单的计算:

int bTaxPrice = int.Parse(prices[wep]); double t = double.Parse("1." + taxes); double price = Math.Round(t * bTaxPrice); 

我将举例说明计算应该如何工作,比如说t=1.1bTaxPrice=1279 ,然后是1.1*1279 = 1406.9 ,但是因为我将结果四舍五入,所以价格等于1407。

对于使用我的C#Winforms程序的其他国家/地区(丹麦)的某些用户遇到的问题导致数字不能舍入,而是添加小数点后的最后2位数。

我们上面计算的结果是1407,对于他们来说是140690。

我在互联网上看到它,有些国家有小数点特殊的东西。

对这类问题有什么好处?

实际上,许多国家/地区使用逗号作为小数点分隔符。 如果要将点用作分隔符,请使用不变的CultureInfo

double.Parse("1." + taxes, CultureInfo.InvariantCulture);

某些国家/地区使用逗号作为小数点分隔符。 您可以通过向double.Parse方法提供CultureInfo.InvariantCulture来解决此问题。