Math 为什么NaN的类型是浮动的?

Math 为什么NaN的类型是浮动的?,math,language-agnostic,types,Math,Language Agnostic,Types,在我所知道的所有语言(python、java、php、javascript等)中,NaN的类型都是float(double)这有什么原因吗?我在IEEE 754中没有发现这样的情况[注:IEEE 754-2008第6章涉及NaN]。即使NaN在内部存储为浮点,它是否应该是一个单独的类型(类似于null/nil/none)是否有任何语言对NaN使用单独的类型?NaN对浮点数有不同的定义。如果一种语言想要用自己的值实现“无意义”的结果(例如,None,NA,#N/a,等等),那么欢迎使用,但FP操作

在我所知道的所有语言(python、java、php、javascript等)中,NaN的类型都是float(double)这有什么原因吗?我在IEEE 754中没有发现这样的情况[注:IEEE 754-2008第6章涉及NaN]。即使NaN在内部存储为浮点,它是否应该是一个单独的类型(类似于null/nil/none)是否有任何语言对NaN使用单独的类型?
NaN
对浮点数有不同的定义。如果一种语言想要用自己的值实现“无意义”的结果(例如,
None
NA
#N/a
,等等),那么欢迎使用,但FP操作需要自己的特定指示符,与所使用的任何语言无关。

NaN
对浮点数有一个特殊的定义。如果一种语言想要用自己的值实现“无意义”的结果(例如,
None
NA
#N/a
,等等),那么它是受欢迎的,但是FP操作需要自己的特定指示符,独立于使用的任何语言。

考虑浮点除法,我将其称为
//code>。很明显,我们希望它有签名

function / : float x float -> float
但我们也希望(按照标准)


因此,
NaN
需要是一个类型为
float
的值,请考虑浮点除法,我将其称为
/
。很明显,我们希望它有签名

function / : float x float -> float
但我们也希望(按照标准)


所以
NaN
需要是
float

类似类型的值?IEEE 754确实明确规定了NaN是什么(这就是它的来源)。。。所以你的问题似乎是基于一个有缺陷的前提。@GregHewgill:这就是为什么我要问这个问题,为什么要浮动而不是另一种类型?这仅仅是方便还是传统?@GregHewgill:(这是之前评论的完整版本)ieee754说:“NaN:不是一个数字,一个用浮点格式编码的符号实体”;对我来说,以浮点格式编码并不等于拥有浮点类型(作为布尔类型,可以用整数0和1编码),这就是为什么我要问这个问题,为什么不是浮点类型而不是另一种类型?这只是方便还是传统?类似吗?IEEE 754确实明确规定了NaN是什么(这就是它的来源)。。。所以你的问题似乎是基于一个有缺陷的前提。@GregHewgill:这就是为什么我要问这个问题,为什么要浮动而不是另一种类型?这仅仅是方便还是传统?@GregHewgill:(这是之前评论的完整版本)ieee754说:“NaN:不是一个数字,一个用浮点格式编码的符号实体”;对我来说,以浮点格式编码并不等于拥有浮点类型(作为布尔类型,可以用整数0和1编码),这就是为什么我要问这个问题,为什么不是浮点类型而不是另一种类型?那只是方便还是传统?