decimal 模块处理浮点数精度问题

    技术2022-07-13  91

    numpy elixir python clojure 因为这个问题不是计算错误,二是计算机浮点数除法的机制问题 python里直接导入decimal指定浮点数精度就可以解决。虽然有时候存在误处理状态。

    import decimal decimal.getcontext().prec = 2 float(decimal.Decimal.from_float(2.9)/ decimal.Decimal.from_float(100))

    符号计算也可以解决精度问题

    import sympy x , y = sympy.symbols('x y') expr = x/y expr.evalf(9/1) expr.evalf(subs={x:2.9,y:100})

    Processed: 0.025, SQL: 9