1
我真的想要有人,誰可以解釋我,爲什麼ROUND
函數正在計算這種方式。我不認爲,在過去的40年裏,我發現了其他人沒有的東西,只是我不能相信這是這樣的作品,我真的想知道這個原因。ROUND函數計算錯誤?
當然,我試圖在這裏搜索,並在網上,但我發現只有用戶創建函數的問題。
當我想檢查MySql
中的ROUND
函數語法時,整個事情就是從這裏來的。
我在this網站上找到了此解釋。
我真的不知道,是函數只檢查小數點後第三位,而不要解析第四,當我想四捨五入到2位小數。
所以我在MySql
和PHP
也做了測試,結果也一樣。
var_dump(round(4.4449, 2));
var_dump (round(4.445, 2));
輸出:
float 4.44
float 4.45
這怎麼可能?我想:
4.4449
^^ <-- this 49 should be 50 so 5.
好吧,我真的不想計算彈道軌跡與PHP火箭的,但如果是真錢,那裏有一個網上商店數以百萬計的交易,我認爲,一個多有點讓人浮想聯翩。
請告訴我,有什麼是因爲我看不到樹木。
我無法看到問題。如果所需精度之後的* next *數字小於5,則舍入向下。如果它是> = 5,四捨五入。考慮之後的數字並不重要。請注意,在你的'4.4449'例子中,你想要**兩次**,這是一個禁忌。 – usr2564301
也許我誤解了,但由於4.4449比4.45更接近4.44,所以我期望'ROUND(4.4449,2)'返回4.44。在你的最後一個例子中,你將四點四四四九舍入四點,這確實是4.445。 – xnx
自49!= 50爲什麼你說「這49應該是50」? –