我正在使用math.acos()函数:
math.acos(1.0000000000000002)
这会抛出一个数学域错误。有人能告诉我原因吗?我之前计算了这个值,在这里这个值会报错,但如果我去掉末尾的2就不会抛出错误。我不知道原因。
另请参阅:
我正在使用math.acos()函数:
math.acos(1.0000000000000002)
另请参阅:
acos
的数字做 acos
操作。
Acos - 反余弦函数,是余弦函数的反函数。
acos
函数的输入值范围为 -1 <= x <= 1
。math.acos(1.0000000000000002)
时,会收到错误提示。math.acos(2)
会导致 ValueError: math domain error
。反余弦函数只在-1和1之间定义,包括-1和1。1.0000000000000002的反余弦函数没有数学或语义意义,除了“不存在”或“未定义”。
当然,由于1的反余弦函数存在,acos(1)不会报错。
math.acos(numpy.dot(a,b))
时,我遇到了这个问题,其中numpy.dot
返回的是1.0000000000000002
而不是 1(由于浮点精度)。请参见此帖子以获取解决方案。 - DaBooba