所以,我有這個浮點數:爲什麼C#以這種方式舍入?
(float)-123456.668915
這是隨機選擇的,因爲我做的BCD碼一大塊,我寫一些單元測試的數字。每當我去比較上面的數字與一個字符串("-123456.668915"
要清楚),我遇到了C#如何四捨五入的問題。它把它變成-123456.7。這已經在NUnit中檢查過,並且直接輸出控制檯。
爲什麼它是這樣四捨五入?根據MSDN,float的範圍約爲-3.4 * 10^38到+3.4 * 10^38,精度爲7位數。除非我完全錯過了某些東西,否則上面的數字是以及在該範圍內,並且只有小數點後面有6位數字。
感謝您的幫助!
哇,我感到啞巴。我總是有這樣的印象:在任何一方儲存7個,或者在該點之後至少儲存7個。讓我檢查一下。 – Nakaan
@Nakaan:我添加了一篇鏈接,指向您可能會覺得有用的文章。考慮到「float」值有多大,對於*總是*會在小數點右邊有7位數字,這意味着最大數字將有* 46 *有效數字。 –
好的,我修整了0.6以上的所有內容,並且通過了測試並匹配了預期的輸出。呵呵。謝謝,我今天學到了一些新東西! – Nakaan