Php 数字\将以5位小数结尾的数字四舍五入的格式

Php 数字\将以5位小数结尾的数字四舍五入的格式,php,number-formatting,Php,Number Formatting,有没有一种方法可以使数字_格式不以小数点5结尾的数字进行四舍五入 echo number_format(25.58,1); // 25.6 - OK echo number_format(85.72,1); // 85.7 - OK echo number_format(26.25,1); // 26.3 - WHY? 26.2 needed here. 注意:我不是在问你想要达到什么目的还不清楚。根据你关于“忽略”以五结尾的数字的评论,我已经模拟了一个非常基本的快速函数来实现这一点 ec

有没有一种方法可以使数字_格式不以小数点5结尾的数字进行四舍五入

echo number_format(25.58,1); // 25.6 - OK 
echo number_format(85.72,1); // 85.7 - OK 
echo number_format(26.25,1); // 26.3 - WHY? 26.2 needed here.

注意:我不是在问你想要达到什么目的还不清楚。根据你关于“忽略”以五结尾的数字的评论,我已经模拟了一个非常基本的快速函数来实现这一点

echo format_numbers(25.58,1); // 25.6 
echo format_numbers(85.72,1); // 85.7 
echo format_numbers(26.25,1); // 26.2 

function format_numbers($number, $decimal)
{
    if(substr($number, -1) == '5'){
        $number = $number - 0.1;
    }
    return number_format($number, $decimal);

}
此示例适用于不支持首选方法round26.25,1,PHP_ROUND_HALF_DOWN的PHP版本。上面的示例将从数字中扣除0.1,从而强制数字格式向下舍入。

使用函数代替数字格式。您可以指定要将其四舍五入的方式

echo round(25.58, 1, PHP_ROUND_HALF_DOWN); // 25.6
echo round(85.72, 1, PHP_ROUND_HALF_DOWN); // 85.7
echo round(26.25, 1, PHP_ROUND_HALF_DOWN); // 26.2

26.5没有任何意义。你确定你的意思不是26.2吗?因为你指定了小数点后1位。将25位转换为小数点后一位将导致3@rjdown当然,刚刚更正了我的问题。@Vector是的,我需要一种方法,使number_格式在最后一个小数点为5时忽略此舍入。因此.6可以向上舍入。5应该向下舍入吗?注意:PHP5.3+只有很多5.2或更旧的服务器仍在运行,不幸的是,这是我会根据php版本选择的方法