首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Lua中计算更高精度的值

在Lua中计算更高精度的值
EN

Stack Overflow用户
提问于 2020-04-23 11:25:29
回答 2查看 156关注 0票数 2

表达式print(math.pi)给出了pi3.1415926535898形式的值,在我的CPU上,lua 5.3的小数点最多为13位。有没有可能让值达到更多的小数位数,例如math.pi的值达到50位小数位。如果是这样,在lua中可以计算的最高限制是多少?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-23 19:52:06

Lua使用双精度浮点数;尾数为52位,因此数字被限制为16位小数。

如果您需要更高的精度,可以使用多精度库,例如lqd,它使用212位尾数的四倍精度,并提供大约64个小数。然后qd.pi给3.1415926535897932384626433832795028841971693993751058209749445923.

票数 2
EN

Stack Overflow用户

发布于 2020-04-23 13:53:42

代码语言:javascript
复制
print(string.format("%0.50f", math.pi))

打印3.14159265358979311599796346854418516159057617187500

来自https://www.lua.org/source/5.3/lmathlib.c.html

代码语言:javascript
复制
#define PI      (l_mathop(3.141592653589793238462643383279502884))

我不知道为什么这两个数字不同。但是,如果您想分别以比print或tonumber更高的精度打印,您是否必须自己格式化数字。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61378834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档