Python:函数内外的准确度不同

时间:2016-07-11 09:44:27

标签: python

我知道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

1 个答案:

答案 0 :(得分:5)

  

我正在计算相同的陈述

不,你不是。此

0.5 * pow(sigma, 2) - log(ltv) / sigma

等同于此

(0.5 * pow(sigma, 2) - log(0.7)) / sigma

precedence运营商,伙计。