1

我有必须更改的谷歌坐标,但是当我回显它们时,例如,

echo (string)28.9871692657471;

我得到的结果

28.987169265747

结尾的“1”消失

echo (string) 28.9875984191895

结尾的“5”消失

我试过直接echo它,不强制转换,但什么都没有改变,我想做的就是有这个基本的操作,

28.9875984191895 + 0.0000000000001 = 28.9875984191896

有什么我想念的吗?因为我在互联网上搜索时找不到任何相关信息

4

3 回答 3

4

浮点数对此不够准确,但无论如何php.ini设置precision会影响将浮点数转换为字符串时显示的十进制位数,因此请尝试调整它(编辑php.ini文件或使用ini_set("precision",50);

于 2013-01-27T19:00:46.840 回答
2

根据浮点数的 PHP 文档

所以永远不要相信浮点数结果到最后一位,也不要直接比较浮点数是否相等。如果需要更高的精度,可以使用任意精度的数学函数gmp函数。

于 2013-01-27T19:01:57.413 回答
1

试试这个

echo bcadd("28.9875984191895", "0.0000000000001", 13);

最后一个参数是要显示的小数位数

于 2013-01-27T19:58:55.327 回答