C里面浮点数运算是用的IEEE 754标准,支持inf和nan的表示及运算。 inf = infinity(无穷大):1.0 / 0.0 的结果是无穷大这是很合理的。 nan = not a number(无法用数字表示、未定义):0.0 / 0.0 在数学上是未定义。 inf和nan这两个特殊值在IEEE 754 浮点数算术标准中都有定义,而PC机和服务器的处理器都在使用IEEE 754做浮点运算,因此你的C程序会得到这样的结果。 需要注意的是(多谢 FirstLove 指正),C语言标准并没有要求浮点数运算严格遵守IEEE 754,而是在尽量去保持兼容。这主要是因为做为语言标准,要照顾那些低端处理器(如烤箱上的处理器等)。它们也用C编程,但是甚至都没有浮点运算单元。
C里面浮点数运算是用的IEEE 754标准,支持inf
和nan
的表示及运算。inf
= infinity(无穷大):1.0 / 0.0 的结果是无穷大这是很合理的。nan
= not a number(无法用数字表示、未定义):0.0 / 0.0 在数学上是未定义。inf
和nan
这两个特殊值在IEEE 754 浮点数算术标准中都有定义,而PC机和服务器的处理器都在使用IEEE 754做浮点运算,因此你的C程序会得到这样的结果。需要注意的是(多谢 FirstLove 指正),C语言标准并没有要求浮点数运算严格遵守IEEE 754,而是在尽量去保持兼容。这主要是因为做为语言标准,要照顾那些低端处理器(如烤箱上的处理器等)。它们也用C编程,但是甚至都没有浮点运算单元。