PHP round()返回意外值
我有一个2.6647的双精度值,我正在尝试将它四舍五入到小数点后2位 我期望返回值为2.67 7(小数点后最后一位)应将4(小数点后第二位)四舍五入至5,5应将6(小数点后第三位)四舍五入至7 但我得到的是2.66分。为什么会这样 PHP版本是5.3.28 47<50 因此,无论最后一个参数是什么,2.6647都将四舍五入到2.66 47<50 因此,无论最后一个参数是什么,2.6647都将四舍五入到2.66 47<50 因此,无论最后一个参数是什么,2.6647都将四舍五入到2.66 47<50PHP round()返回意外值,php,math,rounding,Php,Math,Rounding,我有一个2.6647的双精度值,我正在尝试将它四舍五入到小数点后2位 我期望返回值为2.67 7(小数点后最后一位)应将4(小数点后第二位)四舍五入至5,5应将6(小数点后第三位)四舍五入至7 但我得到的是2.66分。为什么会这样 PHP版本是5.3.28 47
因此,无论最后一个参数是什么,2.6647都将四舍五入到2.66 四舍五入到
n
小数是由n+1
th小数驱动的。在这种情况下,第三个小数点是4,因此数字被四舍五入到2.66
四舍五入到n
小数点由n+1
第四个小数点驱动。在这种情况下,第三个小数点是4,因此数字被四舍五入到2.66
四舍五入到n
小数点由n+1
第四个小数点驱动。在这种情况下,第三个小数点是4,因此数字被四舍五入到2.66
四舍五入到n
小数点由n+1
第四个小数点驱动。在这种情况下,第三个小数点是4,因此数字被四舍五入到2.66
您误解了round()
的工作原理:
“7(小数点后最后一位)应将4(小数点后第二位)四舍五入至5,5应将6(小数点后第三位)四舍五入至7。”
这是不正确的
round()
只考虑指定小数点后的数字。因此,在本例中,根本不考虑7。仅考虑4,该值小于5,决定将数字四舍五入为2.66
要获得上面引用中指定的逻辑,您需要执行以下操作:
$value = 2.6647;
$value2 = round( $value, 3, PHP_ROUND_HALF_UP ); // 2.665
echo round( $value2, 2, PHP_ROUND_HALF_UP ); // 2.67
这可能不是一种非常可行的方法,但应该可以更好地了解
round()
的工作原理。您误解了round()
的工作原理:
“7(小数点后最后一位)应将4(小数点后第二位)四舍五入至5,5应将6(小数点后第三位)四舍五入至7。”
这是不正确的
round()
只考虑指定小数点后的数字。因此,在本例中,根本不考虑7。仅考虑4,该值小于5,决定将数字四舍五入为2.66
要获得上面引用中指定的逻辑,您需要执行以下操作:
$value = 2.6647;
$value2 = round( $value, 3, PHP_ROUND_HALF_UP ); // 2.665
echo round( $value2, 2, PHP_ROUND_HALF_UP ); // 2.67
这可能不是一种非常可行的方法,但应该可以更好地了解
round()
的工作原理。您误解了round()
的工作原理:
“7(小数点后最后一位)应将4(小数点后第二位)四舍五入至5,5应将6(小数点后第三位)四舍五入至7。”
这是不正确的
round()
只考虑指定小数点后的数字。因此,在本例中,根本不考虑7。仅考虑4,该值小于5,决定将数字四舍五入为2.66
要获得上面引用中指定的逻辑,您需要执行以下操作:
$value = 2.6647;
$value2 = round( $value, 3, PHP_ROUND_HALF_UP ); // 2.665
echo round( $value2, 2, PHP_ROUND_HALF_UP ); // 2.67
这可能不是一种非常可行的方法,但应该可以更好地了解
round()
的工作原理。您误解了round()
的工作原理:
“7(小数点后最后一位)应将4(小数点后第二位)四舍五入至5,5应将6(小数点后第三位)四舍五入至7。”
这是不正确的
round()
只考虑指定小数点后的数字。因此,在本例中,根本不考虑7。仅考虑4,该值小于5,决定将数字四舍五入为2.66
要获得上面引用中指定的逻辑,您需要执行以下操作:
$value = 2.6647;
$value2 = round( $value, 3, PHP_ROUND_HALF_UP ); // 2.665
echo round( $value2, 2, PHP_ROUND_HALF_UP ); // 2.67
这可能不是一种非常可行的方法,但应该可以更好地了解
round()
是如何工作的。请查看此
在轮中功能
echo round(2.6647, 2); // 2.66
echo round(2.6637, 2); // 2.66
echo round(2.6657, 2); // 2.67
echo round(2.6667, 2); // 2.67
如果小数点后第三位是5或大于5,则在第二位增加一位。请查看此项 在轮中功能
echo round(2.6647, 2); // 2.66
echo round(2.6637, 2); // 2.66
echo round(2.6657, 2); // 2.67
echo round(2.6667, 2); // 2.67
如果小数点后第三位是5或大于5,则在第二位增加一位。请查看此项 在轮中功能
echo round(2.6647, 2); // 2.66
echo round(2.6637, 2); // 2.66
echo round(2.6657, 2); // 2.67
echo round(2.6667, 2); // 2.67
如果小数点后第三位是5或大于5,则在第二位增加一位。请查看此项 在轮中功能
echo round(2.6647, 2); // 2.66
echo round(2.6637, 2); // 2.66
echo round(2.6657, 2); // 2.67
echo round(2.6667, 2); // 2.67
如果小数点后第三位是5或大于5,则在第二位增加一位。PHP运行良好。您误解了round()
function.PHP的工作原理。您误解了round()
function.PHP的工作原理。您误解了round()
function.PHP的工作原理。您将round()
函数+1误解为“不考虑最后一个参数”。OP可能误解了PHP\u ROUND\u HALF\u UP
选项+1表示“不考虑最后一个参数”。OP可能误解了PHP\u ROUND\u HALF\u UP
选项+1表示“不考虑最后一个参数”。OP可能误解了PHP\u ROUND\u HALF\u UP
选项+1表示“不考虑最后一个参数”。OP可能误解了PHP\u ROUND\u HALF\u UP
选项。