2017-02-23 32 views
2

當我在立即窗口在VBA(Excel 2010中)進入Round(0.005)是否給出了錯誤的結果?

Debug.Print(Round(0.005, 2)) 
0 

我得到0結果。我會期待0.01

我無法想象VBA計算錯誤,所以我做錯了什麼?

+3

這是正確的。 VBA使用[banker's rounding](http://wiki.c2.com/?BankersRounding)。 – Comintern

回答

4

一個銀行家四捨五入VS算術四捨五入的事情

= Round(variable + 0.000001, 0) 
+1

據我所知,這不是一個錯誤,它是圓的邏輯: 它使用**循環**邏輯 – tretom

+0

謝謝!在此期間我做了一些小小的研究 - 另一個解決方案是使用Application.WorksheetFunction.Round(0.005,2)' – speendo

+0

@tretom原諒我的語言更像是銀行家四捨五入與算術舍入的事情 –