PHP.圆()工作奇怪

Tar*_*kov 1 php decimal rounding

这是代码:

$val = 65.5401000000000001;
return round($val ,2);
Run Code Online (Sandbox Code Playgroud)

我期待得到65.54,但得到65.54000000000001.为什么这样工作?以及如何获得预期价值?

Nie*_*sol 5

precisionPHP.ini文件中的设置值太高.最好将其保持在默认值15以防止这种情况发生.基本上你所看到的是浮点数无法准确处理实数的结果.