php round 精度问题,phpround的问题(取精度结果不正确)

php 发现使用PHP round函数进行小数控制的时候,有问题,如下所示:

round(9999999999999.99, 2) 期望值:9999999999999.99;实际值:10000000000000

round(1111111111111.11, 2) 期望值:1111111111111.11;实际值:1111111111111.1

请问有没有遇到类似问题的?这个是PHP已知缺陷吗?没有看到官方发布的相关说明。

注:我机器上PHP版本是5.3.6

回复讨论(解决方案)

round函数没有问题$a = 1111111111111.11;echo $a;

参考php关于浮点类型精度的介绍吧

http://www.php.com/manual/zh/language.types.float.php

round函数没有问题$a = 1111111111111.11;echo $a;

参考php关于浮点类型精度的介绍吧

http://www.php.com/manual/zh/language.types.float.php

$a = 1111111111111.11;

echo $a;

这段代码说明了什么?并没有调用round?

round函数没有问题$a = 1111111111111.11;echo $a;

参考php关于浮点类型精度的介绍吧

http://www.php.com/manual/zh/language.types.float.php

$a = 1111111111111.11;

echo $a;

这段代码说明了什么?并没有调用round?

输出结果是1111111111111.1,说明脚本编译期间就将1111111111111.11转换成1111111111111.1了。

可能是php的浮点类型由于精度的原因不能存储1111111111111.11。

你没有看php官方的说明吗?" 所以永远不要相信浮点数结果精确到了最后一位"

round函数没有问题$a = 1111111111111.11;echo $a;

参考php关于浮点类型精度的介绍吧

http://www.php.com/manual/zh/language.types.float.php

$a = 1111111111111.11;

echo $a;

这段代码说明了什么?并没有调用round?

输出结果是1111111111111.1,说明脚本编译期间就将1111111111111.11转换成1111111111111.1了。

可能是php的浮点类型由于精度的原因不能存储1111111111111.11。

你没有看php官方的说明吗?" 所以永远不要相信浮点数结果精确到了最后一位"

那想要完整显示我例举的数字应该如何处理?

round函数没有问题$a = 1111111111111.11;echo $a;

参考php关于浮点类型精度的介绍吧

http://www.php.com/manual/zh/language.types.float.php

$a = 1111111111111.11;

echo $a;

这段代码说明了什么?并没有调用round?

输出结果是1111111111111.1,说明脚本编译期间就将1111111111111.11转换成1111111111111.1了。

可能是php的浮点类型由于精度的原因不能存储1111111111111.11。

你没有看php官方的说明吗?" 所以永远不要相信浮点数结果精确到了最后一位"

那想要完整显示我例举的数字应该如何处理?

你还是没有看官方的说明,里面说的很清楚了,自己找答案去吧

round函数没有问题$a = 1111111111111.11;echo $a;

参考php关于浮点类型精度的介绍吧

http://www.php.com/manual/zh/language.types.float.php

$a = 1111111111111.11;

echo $a;

这段代码说明了什么?并没有调用round?

输出结果是1111111111111.1,说明脚本编译期间就将1111111111111.11转换成1111111111111.1了。

可能是php的浮点类型由于精度的原因不能存储1111111111111.11。

你没有看php官方的说明吗?" 所以永远不要相信浮点数结果精确到了最后一位"

那想要完整显示我例举的数字应该如何处理?

你还是没有看官方的说明,里面说的很清楚了,自己找答案去吧

OK,thanks

浮点数只能保存有限数位的值

php 已经提供了高精度数学函数库 BC、GMP 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值