zoukankan      html  css  js  c++  java
  • Python之执行精确的浮点数运算

    有时候:代码上数字计算可能会有如同下面的误差

    原因:

    这些错误是由底层CPU和IEEE 754标准通过自己的浮点单位去执行算术时的特征。 由于Python的浮点数据类型使用底层表示存储数据,因此你没办法去避免这样的误差。
    a=3.2
    b=2.1
    print(a+b)  # 5.300000000000001
    print(a+b==5.3)  # False

    如果:对浮点数执行精确的计算操作,并且不希望有任何小误差的出现

    解决:decimal 模块

    from decimal import Decimal
    a = Decimal('4.2')
    b = Decimal('2.1')
    print(a + b)  # Decimal('6.3')
    print((a + b) == Decimal('6.3'))  # True
    注:
    # 真实世界中很少会要求精确到普通浮点数能提供的17位精度。 因此,计算过程中的那么一点点的误差是被允许的。
    # 第二点就是,原生的浮点数计算要快的多-有时候你在执行大量运算的时候速度也是非常重要的



  • 相关阅读:
    ios数据存储方式FMDB
    ios中的coredata
    编程岗位电话面试问答Top 50[转]
    活动图
    时序图
    用例图
    类图
    Movie
    EasyMock
    cglib应用
  • 原文地址:https://www.cnblogs.com/zzy-9318/p/10461947.html
Copyright © 2011-2022 走看看