表达式print(math.pi)给出了pi的3.1415926535898形式的值,在我的CPU上,lua 5.3的小数点最多为13位。有没有可能让值达到更多的小数位数,例如math.pi的值达到50位小数位。如果是这样,在lua中可以计算的最高限制是多少?
发布于 2020-04-23 19:52:06
Lua使用双精度浮点数;尾数为52位,因此数字被限制为16位小数。
如果您需要更高的精度,可以使用多精度库,例如lqd,它使用212位尾数的四倍精度,并提供大约64个小数。然后qd.pi给3.1415926535897932384626433832795028841971693993751058209749445923.
发布于 2020-04-23 13:53:42
print(string.format("%0.50f", math.pi))打印3.14159265358979311599796346854418516159057617187500
来自https://www.lua.org/source/5.3/lmathlib.c.html
#define PI (l_mathop(3.141592653589793238462643383279502884))我不知道为什么这两个数字不同。但是,如果您想分别以比print或tonumber更高的精度打印,您是否必须自己格式化数字。
https://stackoverflow.com/questions/61378834
复制相似问题