PHP 计算不正确
Incorrect PHP calculation
谁能解释一下 PHP 中发生这种情况的原因:
echo (0.29*100)%100 // result 28
这可能很简单,但逻辑上我没有看到任何解释。大概是 PHP 在后台工作的方式。
当我 运行 进入这种情况时,我试图获得数字的前两位小数。结果自然应该是29。
如果我对乘法进行四舍五入,结果很好:
echo (round(0.29*100))%100 // result 29
如果你运行那个代码
echo (0.29*100)%100;
in in in in PHP8.1.1错误信息给你一个线索
PHP 8.1.1
Deprecated: Implicit conversion from float 28.999999999999996 to int loses precision in D:\PHP-SOURCE\Testing\tst.php on line 14
Call Stack:
0.0001 393688 1. {main}() D:\PHP-SOURCE\Testing\tst.php:0
28
谁能解释一下 PHP 中发生这种情况的原因:
echo (0.29*100)%100 // result 28
这可能很简单,但逻辑上我没有看到任何解释。大概是 PHP 在后台工作的方式。
当我 运行 进入这种情况时,我试图获得数字的前两位小数。结果自然应该是29。
如果我对乘法进行四舍五入,结果很好:
echo (round(0.29*100))%100 // result 29
如果你运行那个代码
echo (0.29*100)%100;
in in in in PHP8.1.1错误信息给你一个线索
PHP 8.1.1
Deprecated: Implicit conversion from float 28.999999999999996 to int loses precision in D:\PHP-SOURCE\Testing\tst.php on line 14
Call Stack: 0.0001 393688 1. {main}() D:\PHP-SOURCE\Testing\tst.php:0
28