2011-04-27 217 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​​。那說打印數字有一位小數。