2011-04-27 160 views
0

我有加起来1.我的客户希望以显示我们的电网一位小数10个小数(double型),我已经使用十进制数据类型,Math.Round(客场尝试和甚至),但我不能得到数字加起来1(.98)。我的数学技能缺乏,我无法弄清楚如何正确地做到这一点。任何帮助将是伟大的!.NET四舍五入帮助

0.429068150 0.222531293 
0.091098748 0.062586926 
0.053546592 0.047983310 
0.031988873 0.024339360 
0.022948540 0.013908206 

回答

2

这些数字似乎加起来非常接近一个。

如果我正确认识你,你要舍一串数字显示的目的,但仍然能够做他们的数学和了解如果您不圆她们,你可能已经看到了结果。

因此,为了说明这个问题真正的快速:1.5 + 2.5 = 4,而1 + 2 = 3舍入改变了数字和改变的结果。

你可以做的是在网格中显示它们四舍五入不过你想要的,但保持在幕后数字的高保真(圆唇)版本,并做你的总额。

+0

啊,这很有道理。我认为他们仍然可以加上应用的四舍五入。谢谢 – Marco 2011-04-27 18:58:15

+0

好解决方案... – 2011-04-27 18:59:16

1

他们加起来0.999999998000000。您可能正在寻找格式字符串。您可以在列的属性中设置它们。 (不知道你正在使用什么,我不能帮助进一步放置格式字符串的位置。)

double i = 0.42906815+0.222531293+0.091098748+0.062586926+0.053546592+0.04798331+0.031988873+0.02433936+0.02294854+0.013908206; 
Console.WriteLine(string.Format("{0:N1}", Math.Round(i,1))); 

打印1.0。请注意0​​。那说打印数字有一位小数。