我知道Python中有很多关于浮点精度的问题和文章。但我没有找到这个问题的答案。
我通过调用函数计算同一个语句,第二次没有它。由函数计算的值偏差为0.003,这不是很小。如何从函数中获得相同的精度?
from scipy.stats import norm
from math import *
sigma = 0.174
def g(ltv):
ans = 1 - norm.cdf(0.5 * pow(sigma, 2) - log(ltv) / sigma)
print(ans)
g(0.7)
ans1 = 1 - (norm.cdf((0.5 * pow(sigma, 2) - log(0.7)) / sigma))
print(ans1)
输出:
0.0194617840206
0.016304852863
答案 0 :(得分:5)
我正在计算相同的陈述
不,你不是。此
0.5 * pow(sigma, 2) - log(ltv) / sigma
等同于此
(0.5 * pow(sigma, 2) - log(0.7)) / sigma
precedence运营商,伙计。