2024-05-21 02:46:04 发布
网友
import numpy import math x = numpy.roots([2,-2,(21 - 21**2)]) print x[0], math.floor(x[0])
输出为:
我希望
15.0 15.0
我不希望有任何理由让底限等于14.0。请解释一下!在
{{14}看起来比cd2要小一点。求根算法是数值的而不是符号的,浮点算法不精确。在
浮点数只是某个值的近似值,所有计算都可能引入舍入误差。打印浮点数也可能将数字舍入到更少的位数。试试看
print repr(x[0]), repr(math.floor(x[0]))
以确保显示所有数字。我想它会显示类似14.9999999999999的内容。在
14.9999999999999
我以前使用过一个名为fAlmostEqual的函数,它基于numpy的allclose函数:
fAlmostEqual
import math def fAlmostEqual(a, b, rtol=1.0000000000000001e-05, atol=1e-08): """Checks if the given floats are almost equal. Uses the algorithm from numpy.allclose.""" return math.fabs(a - b) <= (atol + rtol * math.fabs(b))
基于此创建模糊楼层函数:
打印:
15.0 15.0 14.0 14.0
{{14}看起来比cd2要小一点。求根算法是数值的而不是符号的,浮点算法不精确。在
浮点数只是某个值的近似值,所有计算都可能引入舍入误差。打印浮点数也可能将数字舍入到更少的位数。试试看
以确保显示所有数字。我想它会显示类似
14.9999999999999
的内容。在我以前使用过一个名为
fAlmostEqual
的函数,它基于numpy的allclose函数:基于此创建模糊楼层函数:
^{pr2}$打印:
相关问题 更多 >
编程相关推荐