在文档中似乎没有明确的答案.
我有兴趣增加一个time
计算程序启动后秒数的变量.如果最大值可以计入未来,例如100年,那么我不关心让变量永远增量.否则我将不得不考虑重置time
为0 的好点.
默认编译double
,在大多数编译器上,Number是a ,是IEEE 64位浮点数.这意味着10位指数,因此最大数量大约是2 ^ 1024,或5.6e300年.这是很长一段时间.
现在,如果你正在递增它,你可能对整数范围更感兴趣.52位尾数意味着可以使用整数精度的最高数字是2 ^ 52,大约4.5e15.在31'557,600秒/年,这是1.427e8,接近1.5亿年.任何过程的运行时间都很长
更新2014-12-30:Lua 5.3(将在任何时刻发布)添加对整数值的支持,通过编译标志选择32位或64位.
尽管tydok对PiL 2.3的引用既正确又合适,而Javier的答案在实践中是正确的,我认为Lua中对数字的讨论应该用其他一些细节来完成.
Lua解释器旨在通常作为配置和/或脚本语言嵌入到应用程序中.为应用程序构建时,通常会配置一些适合的功能.
用于数字的确切数字类型可用于配置.当编译没有硬件浮点的平台时,加载第三方模块并不重要(特别是在嵌入式系统或机顶盒游戏控制台应用程序中),那么选择整数类型而不是默认类型是合理的double
.偶尔,转换float
也是合理的.
但是,有些应用需要64位整数,或者大多数数字可以是整数,但偶尔需要浮点运算.对于这些情况,Lua核心有一个LNUM补丁.
LNUM更改核心,以便将数字存储为整数或浮点数,并允许多个可配置的选择以获得每个数字的精度.
因此,对于Lua数的最大值问题的底线答案是它取决于在编译时选择的解释器的配置,以及您是否担心可表示的最大幅度或最大整数.即便如此,已经完成了使大整数与浮点表示很好地结合的工作.