标签:无穷大 NaN float nan 3.7 print inf math
问题
你想创建或测试正无穷、负无穷或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()
标签:无穷大,NaN,float,nan,3.7,print,inf,math 来源: https://www.cnblogs.com/ye-peng/p/15969554.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。