.net C#添加双精度以.00000000结尾1

.net C#添加双精度以.00000000结尾1,.net,c#-4.0,double,.net,C# 4.0,Double,为什么除了结尾的.00000000 1之外,此代码生成正确答案 我有一个DataGridView,在一列中有价格。这段代码沿着网格向下,获取值并将它们相加 double pp = 0; for (int i = 0; i < PPUTDG.RowCount; i++) { try { pp = pp + Convert.ToDouble(PPUTDG[16, i].Value.ToString().Replace("$","")); } catc

为什么除了结尾的.00000000 1之外,此代码生成正确答案

我有一个DataGridView,在一列中有价格。这段代码沿着网格向下,获取值并将它们相加

double pp = 0;
for (int i = 0; i < PPUTDG.RowCount; i++)
{
    try
    {
      pp = pp + Convert.ToDouble(PPUTDG[16, i].Value.ToString().Replace("$",""));
    }
    catch { }
}
double-pp=0;
对于(int i=0;i
然后我在pp上调用.ToString()。 这些值应该加在6240.75上,除非我得到6240.7500000001


谢谢。

关于这一点,我们可以找到很多。我已经给了一个,这是另一个

简言之:

“…在内部,计算机使用的格式(二进制浮点)根本无法准确表示0.1、0.2或0.3之类的数字。”

确保您确实需要浮点类型。例如,在处理货币问题时,最好使用
十进制
或整数,并以美分为单位进行计算


一个很好的经验法则是,如果十进制舍入错误在应用程序中没有问题,则可以使用浮点类型。否则,请使用其他工具。

关于这一点,我们可以找到很多。我已经给了一个,这是另一个

简言之:

“…在内部,计算机使用的格式(二进制浮点)根本无法准确表示0.1、0.2或0.3之类的数字。”

确保您确实需要浮点类型。例如,在处理货币问题时,最好使用
十进制
或整数,并以美分为单位进行计算


一个很好的经验法则是,如果十进制舍入错误在应用程序中没有问题,则可以使用浮点类型。否则,请使用其他类型。

对于财务计算,请使用十进制类型,而不是双精度或浮点类型。

对于财务计算,请使用十进制类型,而不是双精度或浮点类型。

尝试使用
十进制类型。请在此阅读此主题:我认为,由于数字不是太大,双人间就可以了。我想不是。谢谢试着用
decimal
type来代替。在这里读一下这个主题:我想既然数字不是太大,就用双精度就可以了。我想不是。谢谢我喜欢问题这么容易解决,谢谢!如果时间有限,我会接受你的回答。我喜欢问题这么容易解决,谢谢!到时候我会接受你的答复。