2013-08-19 55 views
-2

嗨,我有一些舍入問題。對於前:PHP不同的結果

$x = 100; 
$y = 4.2030; 

$result = round($x/$y, 2); 

$結果將是23.79

但現在

$result2 = round(23.79 * 4.2030, 2); 

$ RESULT2將是99.99,所以這是不正確。應該是100($ result2等於$ X)

如何解決它?

+0

顯然,當舍入一個數字時,你會失去精度。 round($ x/y)!= $ x/$ y – Qwerty

+0

爲什麼這應該是100 ... 23.79 * 4.2030 = 99.98937四捨五入到小數點後兩位數應該會給你99.99 – Orangepill

+3

'23.79 * 4.2030 = 99.989370 '如果你需要一個精確的*值來進行進一步的計算,你應該存儲* un * -rounded值,並且只顯示它。 – Sammitch

回答

1

您的回合精度爲小數點後兩位。如果您想獲得完整的數字,你需要忽略精度參數:

$result2 = round(23.79 * 4.2030); 

注:較低的精度參數,更準確的結果將是從實際效果。

您還可以使用ceil()floor()如果你正在尋找舍在特定方向(ceil()會總結,會floor()向下取整)。