【Lua坑】浮点数问题

浮点数精度问题:

例如:local number = 0,   一直加一个分数例如 1/3 ,现实情况中 1/3 * 3 = 1,但是计算机会识别为 1/3 = 0.3333333...  然后这3个数相加,得出0.9999999999... 因此 1/3 * 3 近似等于1

此时如果你代码写了  number >= 1.0  是不成立的, 但是你打印的number 却是 1.0, 因为lua的打印会将 0.9999999...四舍五入为 1.0 打印出来给你看。

真实数据打印方法可以用   math.floor(number * 10000000) / 10000000 之类的方法,即先乘以一个大整数,再取整,再除以大整数,即可得到真实浮点数。

number >= 1.0 不成立,但是可以用 number >= 0.99 这样子解决问题,0.9999999.... 肯定大于等于 0.99。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值