在Lua中计算数值,以提高精确度

问题描述 投票:0回答:1

表达式 print(math.pi) 给出的数值为 pi 作为 3.1415926535898 小数点后13位,在我的CPU上用 lua 5.3. 是否可以得到更多的小数点后的值,例如 math.pi 最多可以达到50位小数。如果是这样,那么在lua中可以计算的最高极限是多少?

lua evaluation calculation evaluate
1个回答
2
投票

Lua使用的是双精度浮点,mantissa有52位,所以数字被限制在小数点后16位左右。

如果你需要更多的精度,可以使用多精度库,如 lqd它使用212个万位数的四倍精度,得到约64个小数。那么 qd.pi 给出3.1415926535897932384626433832795028841971693993751058209749445923。


2
投票
print(string.format("%0.50f", math.pi))

打印3.14159265358979311599796346854418516159057617187500。

来自 https:/www.lua.orgsource5.3lmathlib.c.html

#define PI      (l_mathop(3.141592653589793238462643383279502884))

为什么两个数字不一样我不知道。但如果你想分别打印出比打印或吨位更高的精度,是否要自己格式化数字。

© www.soinside.com 2019 - 2024. All rights reserved.