<?php echo ceil(2.1/0.7); // 输出:4 ?>
经过上面对浮点数计算的探讨,知道这是浮点数计算结果不完全精确造成的:
<?php printf("%0.20f", (2.1/0.7)); // 输出:3.00000000000000044409 ?>
经过上面对浮点数计算的探讨,知道这是浮点数计算结果不完全精确造成的,因此使用 round() 函数处理一下即可:
<?php echo ceil( round((2.1/0.7),1) ); ?>
虽然 round() 函数是按照指定的精度进行四舍五入,但保留小数点后一位,对我们的取整结果是没影响的。