zoukankan      html  css  js  c++  java
  • python 高精度浮点数计算模块decimal

    Python decimal

    1、简单使用:保留三位小数

    >>>Decimal('1.41421356').quantize(Decimal('1.000'))
    Decimal('1.414')

    2、简单使用:保留两位小数

    >>> from decimal import Decimal
    >>> Decimal('0.125').quantize(Decimal('0.00'))
    Decimal('0.12')
    >>> Decimal('0.375').quantize(Decimal('0.00'))
    Decimal('0.38')

    注意:为什么0.125不是四舍五入。

    3、查看默认进位方式:默认进位方式为奇进偶舍

    >>> from decimal import getcontext
    >>> getcontext().rounding
    'ROUND_HALF_EVEN'

    4、设置进位方式为四舍五入

    >>> from decimal import Decimal, ROUND_HALF_UP
    >>> Decimal('0.375').quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)
    Decimal('0.38')
    >>> Decimal('0.125').quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)
    Decimal('0.13')

    最后注意:可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮点数据本身就不准确。

    from decimal import Decimal,ROUND_HALF_UP
    
    a =11.245
    origin_num = Decimal(str(a))
    answer_num1 = origin_num.quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)
    print(answer_num1)
    
    origin_num1 =Decimal(a)
    answer_num2 = origin_num1.quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)
    print(answer_num2)

    输出:

    11.25
    11.24

  • 相关阅读:
    flash 3d基础学习
    3d中的镜头
    [转]Android Canvas 切割 clipRect
    绘制球形
    绘制圆筒
    stage3d学习笔记1
    (转)Region.Op效果解析
    游戏中的镜头
    无向网的最小生成树——Prim算法(转)
    最短路径之——Dijkstra算法(转)
  • 原文地址:https://www.cnblogs.com/-wenli/p/13501097.html
Copyright © 2011-2022 走看看