为什么python 计算sin (180)!=0
2016-09-27 11:28
169 查看
无论采用第一种方法还是第二种方法
>>> math.sin(math.pi)
1.2246467991473532e-16
>>> math.sin(180*math.pi/180)
1.2246467991473532e-16
>>> math.sin(90*math.pi/180)
1.0
>>> math.sin(0*math.pi/180)
0.0
>>> math.sin(45*math.pi/180)
0.7071067811865475
>>> math.sin(180*math.pi/180)
1.2246467991473532e-16
>>> math.cos(180*math.pi/180)+complex(0+1j)*math.sin(180*math.pi/180)
(-1+1.2246467991473532e-16j)
>>> abs(-1+1.2246467991473532e-16j)
1.0
>>> abs(1.2246467991473532e-16j)
1.2246467991473532e-16
>>> abs(1.2246467991473532e-16)
1.2246467991473532e-16
>>> abs(-1+1.2246467991473532e-16j+1)
1.2246467991473532e-16
>>> import numpy as np
>>> np.sin(np.radians(180))
1.2246467991473532e-16
>>>
可以看到计算,0 ,90还是准确的。
但是计算180,
却是1.224 e-16
因为处理器处理的是浮点数,无法精确表示pi的真实值。
使用下列函数确定0与计算结果1.2246467991473532e-16的差距,是不是无限接近。
>>> np.allclose(0,np.sin(np.radians(180)),1e-5,1e-8)
True
>>>
>>> math.sin(math.pi)
1.2246467991473532e-16
>>> math.sin(180*math.pi/180)
1.2246467991473532e-16
>>> math.sin(90*math.pi/180)
1.0
>>> math.sin(0*math.pi/180)
0.0
>>> math.sin(45*math.pi/180)
0.7071067811865475
>>> math.sin(180*math.pi/180)
1.2246467991473532e-16
>>> math.cos(180*math.pi/180)+complex(0+1j)*math.sin(180*math.pi/180)
(-1+1.2246467991473532e-16j)
>>> abs(-1+1.2246467991473532e-16j)
1.0
>>> abs(1.2246467991473532e-16j)
1.2246467991473532e-16
>>> abs(1.2246467991473532e-16)
1.2246467991473532e-16
>>> abs(-1+1.2246467991473532e-16j+1)
1.2246467991473532e-16
>>> import numpy as np
>>> np.sin(np.radians(180))
1.2246467991473532e-16
>>>
可以看到计算,0 ,90还是准确的。
但是计算180,
却是1.224 e-16
因为处理器处理的是浮点数,无法精确表示pi的真实值。
使用下列函数确定0与计算结果1.2246467991473532e-16的差距,是不是无限接近。
>>> np.allclose(0,np.sin(np.radians(180)),1e-5,1e-8)
True
>>>
相关文章推荐
- 为什么x==y而cos(x) != cos(y)(或者sin,tan,log等其他浮点运算)?
- Python为什么不需要swap(a, b)
- 有关云计算和我为什么反对云计算
- 云计算倡议书(二)——什么是云计算?为什么云计算重要?
- [转]使用python调用计算所分词
- 为什么俺推荐Python[1]:作为脚本语言的Python
- 为什么《Dive into Python》不值得推荐
- python md5 计算的例子
- python计算时间
- Python为什么不需要swap(a, b)
- 原创 计算检验和:将消息头+会话头+事务头+操作消息按32位异或(Python版)
- python(如何计算通过考试的female人数)
- 查表法计算crc的python演示程序
- 用python计算文件的md5值
- Python 为什么引起我的注意
- 为什么要用Python?
- 计算中为什么要用补码表示
- 一句代码计算阶乘(python)
- 提前还贷的python计算程序
- 用python计算top命令中某个进程的CPU,Memory使用情况