【发布时间】:2012-03-01 03:17:56
【问题描述】:
在我知道的所有语言(python、java、php、javascript 等)中,NaN 的类型是浮点数(双精度)。 有什么原因吗?我没有在 IEEE 754 中找到这种情况 [注意:IEEE 754-2008 第 6 章处理 NaN]。即使 NaN 在内部存储为浮点数,它不应该是一个单独的类型(类似于 null / nil / none)吗? 是否有任何语言使用单独的 NaN 类型?
【问题讨论】:
-
IEEE 754 确实指定了 NaN 是什么(这就是它的来源)......所以你的问题似乎是基于一个有缺陷的前提。
-
@GregHewgill :这就是我问这个问题的原因,为什么宁愿浮动而不是另一种类型?这只是方便还是传统?
-
@GregHewgill :(这是先前评论的完整版本)IEEE 754 说:“NaN:不是数字,以浮点格式编码的符号实体”;对我来说,以浮点格式编码不等于具有浮点类型(作为可以用整数 0 和 1 编码的布尔类型),这就是我问这个问题的原因,为什么而不是浮点而不是另一种类型?这只是方便还是传统?
标签: math language-agnostic types