机器之间的划分差异

时间:2014-10-20 15:10:57

标签: c# division

我有一个值存储在数据库中,带有隐含的小数。例如1234是12.34,456是4.56。

不幸的是,由于隐含的十进制列周围的代码量,在当前请求下,将数据库的隐含小数更改为实际小数是不可行的。

我遇到的问题是将隐含的十进制转换为本地计算机上的“实际”小数,但在部署到我们的下一个环境时却不行。

我环境中的<9> 9999正确转换为99.99,但在我们的下一个环境中,它会转换为99.9899978637695。

这是我正在使用的代码:

public string FormatForDisplay(string valueFromDb)
{
    double convertedNumber;
    double.TryParse(valueFromDb, out convertedNumber);

    return ConvertImpliedDecimalToPercent(convertedNumber).ToString();
}

public double ConvertImpliedDecimalToPercent(double convertedNumber)
{
    return convertedNumber / 100;
}

我无法在本地重现此问题,因此我不确定如何测试它是否已修复。我想我的问题是为什么会发生这种情况,有没有办法解决它?

0 个答案:

没有答案