gpt4 book ai didi

php - PHP 5.2.17 的 round() 模式 ROUND_HALF_DOWN

转载 作者:可可西里 更新时间:2023-11-01 00:03:41 27 4
gpt4 key购买 nike

我需要在 PHP 5.2.17 中模拟 ROUND_HALF_DOWN 模式 - 我无法升级服务器的 PHP 版本。有什么想法可以实现吗?

基本思想是 1.895 变成 1.89,而不是像通常使用 round() 那样变成 1.90。

编辑:这个函数似乎可以解决问题:

function nav_round($v, $prec = 2) {
// Seems to fix a bug with the ceil function
$v = explode('.',$v);
$v = implode('.',$v);
// The actual calculation
$v = $v * pow(10,$prec) - 0.5;
$a = ceil($v) * pow(10,-$prec);
return number_format( $a, 2, '.', '' );
}

最佳答案

您可以通过简单地转换为字符串并返回来作弊:

$num = 1.895;

$num = (string) $num;

if (substr($num, -1) == 5) $num = substr($num, 0, -1) . '4';

$num = round(floatval($num), 2);

编辑:

这里是函数形式:

echo round_half_down(25.2568425, 6); // 25.256842

function round_half_down($num, $precision = 0)
{
$num = (string) $num;
$num = explode('.', $num);
$num[1] = substr($num[1], 0, $precision + 1);
$num = implode('.', $num);

if (substr($num, -1) == 5)
$num = substr($num, 0, -1) . '4';

return round(floatval($num), $precision);
}

关于php - PHP 5.2.17 的 round() 模式 ROUND_HALF_DOWN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7103233/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com