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

  • 相关阅读:
    .NET Framework 1.13.5 版本安装包下载链接
    可遇不可求的Question之MYSQL获取自增ID的四种方法篇
    20110917 晴
    北海道 7天6夜 自助游
    想你了
    猫忘带电话了
    [转载经验] 探亲签证申请
    帮忙打印
    打印机
    20110910 晴
  • 原文地址:https://www.cnblogs.com/-wenli/p/13501097.html
Copyright © 2011-2022 走看看