PHP 如果定义了精度,则 round 添​​加小数

PHP round adds decimals if a precision is defined

我到处都看过,但我似乎无法弄清楚。我有一堆最多有 6 位小数的坐标,我想将所有内容四舍五入到只有 2 位小数。

例如,一个数字可以是“82.599899”,它应该变成“82.60”。问题是,如果我使用 round($number, 2) 它会变成这样:

82.59999999999994316

所以一堆例子是:

round(82.599899);  //returns 83
round(82.599899, 2); //returns 82.599999999999994316
floor(82.599899* 100) / 100; //returns 82.599999999999994316
round(28.4772, 2); //returns 28.480000000000000426

我是不是做错了什么?我以前从来没有遇到过 round, floor etz 的问题,所以我现在很无能

对我来说,这是按预期工作的。

round(82.599899);  //returns 83
round(82.599899, 2); //returns 82.60
round(28.4772, 2); //returns 28.48

所以我猜这是一个配置问题。您是否更改了 php.ini 中的某些内容?也许 precision 字段已从默认字段更改。