Java教程

3.7无穷大于NaN

本文主要是介绍3.7无穷大于NaN,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

问题

​ 你想创建或测试正无穷、负无穷或NaN(非数字)的浮点数。

解决方案

​ Python并没有特殊的语法来表示这些特殊的浮点值,但是可以使用float()来创建它们。比如:

a = float('inf')
b = format('-inf')
c = float('nan')
print(a)  # ->inf
print(b)  # ->-inf
print(c)  # ->nan

​ 为了测试这些值的存在,使用math.isif()和math.isnan()函数。比如:

import math

print(math.isinf(a))  # ->True
print(math.isnan(c))  # ->True

讨论

​ 无穷大数在执行数学计算的时候会传播,比如:

a = float('inf')
print(a + 45)  # ->inf
print(a * 10)  # ->inf
print(10 / a)  # ->0.0

​ 但是有些操作时未定义的并返回一个NaN结果。比如:

a=float('inf')
print(a/a) # ->nan
b=float('-inf')
print(a+b)# ->nan

NaN值会在所有操作中传播,而不会产生异常。比如:

c=float('nan')
print(c+23)# ->nan
print(c/2)# ->nan
print(math.sqrt(c))# ->nan

​ NaN值的一个特别的地方是它们之间的比较操作总是返回False。比如:

c=float('nan')
d=float('nan')
print(c==d)  # ->False
print(c is d) # ->False

​ 由于这个原因,测试一个NaN值的唯一安全的方法就是使用math.isnan()

这篇关于3.7无穷大于NaN的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!