舍入到2位小数,但如果非常接近,则将其设置为最接近的整数

时间:2016-11-18 10:36:14

标签: php rounding number-formatting

是否存在任何函数或可能性,如果数字非常接近,则该数字将舍入到最接近的整数值。例如:

$var = 18.99;
$res = round($var, 2); // output: 18.99, expected - 19

我尝试了没有第二个参数的圆形,但是18.65会失败。

$var = 18.99;
$res = round($var); //output - 19

$var = 18.65;
$res = round($var); //output - 19, expected 18.65

我只想让.9范围将itselt转换为下一个int值。这可能吗?

1 个答案:

答案 0 :(得分:4)

这基本上将任何值舍入到最接近的整数,然后用限制检查两者的差异。

function nearly_round($value, $limit = 0.1) { 
    $rounded = round($value); 
    //Check the difference. If less than the limit, 
    //return the rounded value, else the original number.
    return abs($rounded - $value) < $limit ? $rounded : $value; 
}

echo nearly_round(-0.9); // -1
echo nearly_round(-0.8); // -0.8
echo nearly_round(0.8);  // 0.8
echo nearly_round(0.9);  // 1