据我记得自己编程时,我曾被教过不要比较浮点数是否相等。现在,在阅读有关Lua 类型的Lua编程时number
,我发现了以下内容:
数字类型表示实数(双精度浮点数)。Lua没有整数类型,因为它不需要它。人们对浮点算术错误普遍存在误解,有人担心即使是简单的增量也会对浮点数产生怪异。事实是,当您使用双精度数表示整数时,根本没有舍入错误(除非数字大于100,000,000,000,000)。具体来说,Lua数可以表示任何长整数而没有舍入问题。而且,大多数现代CPU进行浮点运算的速度与整数运算一样快(甚至更快)。
所有语言都正确吗?基本上,如果我们不超过双精度浮点数,那么使用整数算术安全吗?或者,为了更符合问题标题,Lua对它的number
类型有什么特殊之处,以便它既可以用作整数类型又可以用作浮点类型吗?