【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。

猜你喜欢

转载自blog.csdn.net/qq_39574690/article/details/113632077