double.Parse 在某些国家似乎无法使用

4

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

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。
我在互联网上看到,有些国家在小数点方面是有特殊要求的。
针对这种问题,有什么好的解决方法呢?
2个回答

7

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

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


2

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接