hat*_*rix 4 python floating-point numpy
计算一个值的余弦会得到略微不同的结果.如何检查这种差异是否在机器精度范围内?
import math
math.cos(60.0/180.0*math.pi)
-> 0.5000000000000001
import numpy
numpy.cos(60.0/180.0*numpy.pi)
-> 0.50000000000000011
Run Code Online (Sandbox Code Playgroud)
Fre*_*Foo 10
差异似乎只是由格式化例程引起的:
>>> '%.30f' % math.cos(60./180.*math.pi)
'0.500000000000000111022302462516'
>>> '%.30f' % np.cos(60./180.*np.pi)
'0.500000000000000111022302462516'
Run Code Online (Sandbox Code Playgroud)
请注意,默认情况下np.cos
返回np.float64
而不是float
,显然该类型的打印方式不同.在通用硬件上,它们都实现为64位double
,因此精度没有实际差异.
归档时间: |
|
查看次数: |
2963 次 |
最近记录: |