2012-08-14 65 views
1

假設我在變量$小時中具有數字「13.57916667」。這是一個計算時間,結合了幾分鐘,幾秒到幾小時。將十進制小數加到10的最接近的倍數,用php

我想小數點四捨五入。例如,我希望$小時變爲13.6。我似乎無法在任何地方找到任何解決方案,即使在stackoverflow上。提前致謝!

回答

3

好了,這個小片段應該這樣做:

echo round(13.579, 1); 

如果你正在尋找一個ceil()精度:

function ceil_with_precision($value, $precision = 0) { 
    return ceil($value * pow(10, $precision))/pow(10, $precision); 
} 

對於1位小數的固定精度,這將成爲:

ceil($value * 10)/10; 
+0

據我所知,他希望永遠小數四捨五入。用這個「(13.02,1);''你會得到'13'而不是'13.1'。 – 2012-08-14 10:33:56

+0

這工程太棒了! 我修改了另一個基於你提供的代碼的代碼,有什麼區別: 'return(ceil(pow(10,$ precision)* $ value)+ ceil(pow(10,$ precision)* $ value - ceil(pow(10,$ precision)* $ value)))/ pow(10,$ precision);' AND 'return ceil($ value * pow(10,$ precision))/ pow (10,$精度);' 兩者回報相同,是否比另一個更精確? – cssExp 2012-08-14 11:40:57

+0

@cssExp我只看到更多的代碼是所有:)我不明白其他更準確,所以我會用更少的代碼:) – 2012-08-14 12:03:59

0

試試這個

$roundednumber= round($number/10, 0) * 10; 
0
$hours = (float) "13.57916667"; 
$hours = ceil($hours * 10)/10; 
相關問題