当前位置:  开发笔记 > 编程语言 > 正文

Lua中一个数字的最大值是多少?

如何解决《Lua中一个数字的最大值是多少?》经验,为你挑选了2个好方法。

在文档中似乎没有明确的答案.

我有兴趣增加一个time计算程序启动后秒数的变量.如果最大值可以计入未来,例如100年,那么我不关心让变量永远增量.否则我将不得不考虑重置time为0 的好点.



1> Javier..:

默认编译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位.


谢谢,我可以忍受1.5亿年后的一些程序员的憎恨.
顺便说一句,虽然它是一个52位的尾数,但是有一个"额外的"隐含位精度,所以你可以增加1的最高位大约是2 ^ 53.

2> RBerteig..:

尽管tydok对PiL 2.3的引用既正确又合适,而Javier的答案在实践中是正确的,我认为Lua中对数字的讨论应该用其他一些细节来完成.

Lua解释器旨在通常作为配置和/或脚本语言嵌入到应用程序中.为应用程序构建时,通常会配置一些适合的功能.

用于数字的确切数字类型可用于配置.当编译没有硬件浮点的平台时,加载第三方模块并不重要(特别是在嵌入式系统或机顶盒游戏控制台应用程序中),那么选择整数类型而不是默认类型是合理的double.偶尔,转换float也是合理的.

但是,有些应用需要64位整数,或者大多数数字可以是整数,但偶尔需要浮点运算.对于这些情况,Lua核心有一个LNUM补丁.

LNUM更改核心,以便将数字存储为整数或浮点数,并允许多个可配置的选择以获得每个数字的精度.

因此,对于Lua数的最大值问题的底线答案是它取决于在编译时选择的解释器的配置,以及您是否担心可表示的最大幅度或最大整数.即便如此,已经完成了使大整数与浮点表示很好地结合的工作.


LNUM是伟大的,无论是在非FPU处理器速度(一些搂着她那里),并为那些极少数情况下,你真的需要64位的整数运算.
推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有