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

  • 相关阅读:
    MVC,MVP,MVVM的区别
    jQuery Mobile 实现苹果滑动删除闹钟功能的几点总结
    AngularJS执行流程详解
    基于angularJS的表单验证练习
    jQuery 中 attr() 和 prop() 方法的区别
    天猫消息盒子的CSS实现
    jQuery事件之传递参数
    浅谈js中的垃圾两种回收机制
    js中的DOM操作汇总
    log4net
  • 原文地址:https://www.cnblogs.com/-wenli/p/13501097.html
Copyright © 2011-2022 走看看