我有一個Math.Round的bug,沒有任何解釋。 當我做Math.Round bug 81.725 MidpointRounding.AwayFromZero = 81.72
Math.Round(81.725, 2, MidpointRounding.AwayFromZero)
結果是81,72但是當我做與Decimal.Round相同
Decimal.Round(81.725M, 2, MidpointRounding.AwayFromZero)
結果是81,73
我闖到大明白爲什麼,有沒有系統地使用Math.Round的解決方案?下面
http://stackoverflow.com/questions/1165761/decimal-vs-double-which-one-should-i-use-and-when | 你知道十進制和浮點(double,float)有什麼區別嗎? – user2184057
你的問題不是因爲'Math.Round'和'Decimal.Round'。這是因爲您的輸入值在一種情況下是雙倍,而在另一種情況下是小數。試試'Math.Round(81.725M,2,MidpointRounding.AwayFromZero);'你會看到結果是一樣的 – Pikoh