1247687475123456 P>
Lua的作为通常配置使用平台的通常双精度浮点格式来存储所有号码。对于的最 em>的今天桌面平台,这将是64位IEEE-754格式。的传统智慧是,在范围-1E15整数到+ 1E15可以安全地假定为代表没错。 p>
在任何情况下,功能通过将其参数(有一些小的调整),以该平台的实施。通过了解格式字符串 包括 和 给力“科学”符号,并 给力纯十进制格式。此外, 和 选择最短的符号。 P>
例如: P> E:\ ...>卢阿 LUA 5.1.4版权所有(C)1994-2008 Lua.org,市局 - 里约 > A = 1e17 / 3 >打印(的String.Format(“%F”,A)) 33333333333333332.000000 >打印(的String.Format(“%E”,A)) 3.333333e + 016 >打印(的String.Format(“%。0F”,A)) 33333333333333332
请注意,当值的32位有符号整数范围内适合,你也可以使用 格式。然而,结果并不好,如果该值超过该范围限定。在微秒系统时间戳有可能超过32位范围。 P>
如果16位十进制数不够精确,有可用于提高精确度几种选择。 P>
首先,它不会是困难打包在一个真正的64位整数 随着一套合适的算术元方法的。这被在Lua的邮件列表偶尔讨论,但我不记得看到完成模块由任何人释放。 p>
二,Lua的作者之一发布了两个模块,支持高精度计算:的 LBC和lmapm 。两者都在这个页面找到。 P>
三,在谷歌搜索随便轻易变成了其他几个数学函数库的封装。 P>