Lua文件输出:-1.#IO是什么?

我正在使用 Lua 将数字打印进文件中,偶尔会显示出 -1.#IO。这是什么意思?

问题代码在此 gist 中。

https://gist.github.com/Nelarius/6247636

而问题数字就在最底部:meanPrice。该值存储在 Commodity 表中,后来 Commodity 表将该值记录在文件中。

点赞
用户2279620
用户2279620

根据评论者的说法,这是一个无效的数字。它只应该在 Windows 上出现。

请参见下面的链接。

请注意,链接提到了 NaNs 的 (-)1.#IND 和无穷大的 (-)1.#INF,我也遇到了这种情况。 我对于你所做的生成 #IO 操作很感兴趣。

IEEE 浮点数异常

2013-08-15 17:20:17
用户1009479
用户1009479

在 Windows 系统上,正无穷大的浮点数输出为 1.#INF,负无穷大的输出为 -1.#INF,浮点数不定值的表示为 -1.#IND,但是没有类似 -1.#IO 的表示方式。

最有可能的原因是,你在输出带有 3 位小数的数字。当小数点 . 后有 3 位数字时,.#INF.#IND 会被四舍五入到 .#IO

print(-1/0)
print(0/0)
print((string.format("%.3f", -1/0)))
print((string.format("%.3f", 0/0)))

在 Windows 系统上,输出结果为:

-1.#INF
-1.#IND
-1.#IO
-1.#IO
2014-02-25 06:22:51