我有一个这样的值:
$value = 2.3333333333;
我想把这个值四舍五入成这样
$value = 2.35;
我已经试过圆,天花板等,但结果不是我所期望的。请任何人帮助。谢谢
2ul0zpep1#
从字面上理解你的问题,这将做到这一点:
$value = (round($original_value / 0.05, 0)) * 0.05
即将四舍五入到 * 最接近的 * 0.05。如果出于某种原因,您希望 * 始终四舍五入 * 到0.05,请使用
$value = (round(($original_value + 0.025) / 0.05, 0)) * 0.05
trnvg8h32#
你有三种可能:round(),floor(),ceil()给你的:
$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 ?>
p8h8hvxi3#
向上/向下舍入到任意小数位数的补充函数:
/** * Round up to specified number of decimal places * @param float $float The number to round up * @param int $dec How many decimals */ function roundup($float, $dec = 2){ if ($dec == 0) { if ($float < 0) { return floor($float); } else { return ceil($float); } } else { $d = pow(10, $dec); if ($float < 0) { return floor($float * $d) / $d; } else { return ceil($float * $d) / $d; } } } /** * Round down to specified number of decimal places * @param float $float The number to round down * @param int $dec How many decimals */ function rounddown($float, $dec = 2){ if ($dec == 0) { if ($float < 0) { return ceil($float); } else { return floor($float); } } else { $d = pow(10, $dec); if ($float < 0) { return ceil($float * $d) / $d; } else { return floor($float * $d) / $d; } } }
l2osamch4#
试试看:
$value = 2.3333333333; echo number_format($value, 2);
mqxuamgl5#
您可以使用以下代码:
$value = 2.3333333333; $value = round ( $value, 2, PHP_ROUND_HALF_UP);
最好的文件是here
5条答案
按热度按时间2ul0zpep1#
从字面上理解你的问题,这将做到这一点:
即将四舍五入到 * 最接近的 * 0.05。
如果出于某种原因,您希望 * 始终四舍五入 * 到0.05,请使用
trnvg8h32#
你有三种可能:round(),floor(),ceil()
给你的:
round
floor
ceil
p8h8hvxi3#
向上/向下舍入到任意小数位数的补充函数:
l2osamch4#
试试看:
mqxuamgl5#
您可以使用以下代码:
最好的文件是here