轮数最多为`.49`或`.99`

时间:2017-11-20 10:04:27

标签: php

我试图像这样围绕数字:

5,24785 => 5,49
5,74536 => 5,99
5,00000 => 5,00

我尝试了http://php.net/manual/fr/function.round.php

但这回归

5,24785 => 5,24
5,74536 => 5,74
5,00000 => 5,00

一个php函数可以做到,或者我需要向上舍入然后删除0.01?

你有一些线索吗?

4 个答案:

答案 0 :(得分:1)

没有功能可以做到,你需要向上舍入然后删除0.01

答案 1 :(得分:1)

在php(我相信)中没有这样的东西,你可以做一个手动检查:

$number = "5.85458";
$decimal = $number - (int) $number;

if($decimal > 0 && $decimal < 0.5) $myNumber = (int) $number + 0.49; // x.49
if($decimal > 0.5) $myNumber = (int) $number + 0.99; // x.99
if($decimal == 0) $myNumber = (int) $number; // x.00

echo $myNumber;

或者只删除0.01

答案 2 :(得分:1)

您需要使用自定义舍入功能。因为舍入到0.49不是标准方式。

    function rounder($num){
    $fln= $num-floor($num);
    if ($fln>0 and $fln<0.5) $fln=0.49;
    else $fln=0.99;

    return floor($num)+$fln;
    }
    echo rounder(5.24882);

答案 3 :(得分:0)

$num = 5.56;  
$num = round($num - (int) $num) ? round($num) - 0.01 : round($num) + .49;
// 5.99 output

$num = 5.38;  
$num = round($num - (int) $num) ? round($num) - 0.01 : round($num) + .49;
// 5.49 output