2013-07-10 51 views
1

我有這樣一個值:如何在PHP中取得價值?

$value = 2.3333333333; 

,我想這個值向上舍入到這樣的:

$value = 2.35; 

我已經嘗試過一輪,小區和等,但結果不是我預期。

請任何人幫忙。

感謝

+1

我可能會問你爲什麼WOU ld想把它湊到2.35?什麼是標準?最近0.05? – Bathsheba

+0

嘗試round()和測試 – 2013-07-10 07:06:14

+0

@AlexGittemeier - 不,它不起作用,它返回2.33 –

回答

4

考慮您的問題從字面上看,這將做到這一點:

$value = (round($original_value/0.05, 0)) * 0.05 

即會舍入到最近的0.05

如果由於某種原因,你想總是圍捕到0.05,使用

$value = (round(($original_value + 0.025)/0.05, 0)) * 0.05 
+0

這項工作很好,但你可以使它可用於此範圍2.11111111111111高達2.15 2.222222222222222高達2.25,謝謝 –

+0

@Rio愛德華多,你也說「總是高達0.05」 ? – Bathsheba

+0

是的:)但不是2.6666666等只有範圍2.111111直到2.444444 –

0

嘗試:

$value = 2.3333333333; 
echo number_format($value, 2); 
+0

仍然相同的結果 - > 2.33 –

0

你有3個可能性:ROUND(),地板(),小區()

爲你:

$step = 2; // number of step 3th digit 
$nbr = round(2.333333333 * $step, 1)/$step; // 2.35 

$step = 4; // number of step on 3th digit 
$nbr = round(2.333333333 * $step, 1)/$step; // 2.325 

round

<?php 
echo round(3.4);   // 3 
echo round(3.5);   // 4 
echo round(3.6);   // 4 
echo round(3.6, 0);  // 4 
    echo round(1.95583, 2); // 1.96 
echo round(1241757, -3); // 1242000 
echo round(5.045, 2); // 5.05 
echo round(5.055, 2); // 5.06 
?> 

floor

<?php 
echo floor(4.3); // 4 
echo floor(9.999); // 9 
echo floor(-3.14); // -4 
?> 

ceil

<?php 
echo ceil(4.3); // 5 
echo ceil(9.999); // 10 
echo ceil(-3.14); // -3 
?> 
-1

您可以使用此代碼:

$value = 2.3333333333; 
$value = round ($value, 2, PHP_ROUND_HALF_UP); 

最好的文檔是here