不回显全字符串

时间:2013-01-27 18:58:29

标签: php

我有谷歌坐标,我必须改变,但当我回应它们时,例如,

echo (string)28.9871692657471;

我得到

的结果
28.987169265747
最后

“1”消失

echo (string) 28.9875984191895

最后“5”消失

我尝试直接回显它,没有强制转换,但没有任何改变,我想要做的就是进行这个基本操作,

28.9875984191895 + 0.0000000000001 = 28.9875984191896

我有什么遗失的吗?因为我在互联网上搜索时找不到任何相关内容

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

根据PHP docs on floating point numbers

  

所以永远不要将浮点数结果信任到最后一位数,并且不要直接比较浮点数是否相等。如果需要更高的精度,arbitrary precision math functionsgmp函数可用。

答案 2 :(得分:1)

试一试

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

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