推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
mili8908
V2EX  ›  Python

Python 保留小数后精度问题

  •  
  •   mili8908 · Aug 22, 2018 · 5233 views
    This topic created in 2958 days ago, the information mentioned may be changed or developed.
    a = 0.9987623
    # 将 a 保留两位小数得到
    a = 0.99
    
    8 replies  •  2018-08-23 13:43:59 +08:00
    zh0408
        1
    zh0408  
       Aug 22, 2018
    round()
    gnozix
        2
    gnozix  
       Aug 22, 2018
    format
    mili8908
        3
    mili8908  
    OP
       Aug 22, 2018
    @zh0408
    In [2]: a = 0.998765

    In [3]: round(a,2)
    Out[3]: 1.0
    gimp
        4
    gimp  
       Aug 22, 2018   ❤️ 1
    >>> r = lambda f: f - f % 0.01
    >>> r(2.368)
    2.36
    >>> r(2.36888888)
    2.36
    >>> r(2.323)
    2.32
    >>> r(2.326)
    2.32

    摘自: https://www.reddit.com/r/learnpython/comments/4nj5gu/how_to_get_float_to_two_decimal_places_without/
    chenxingyu1021
        5
    chenxingyu1021  
       Aug 22, 2018   ❤️ 1
    int(a*100)/100
    lxy42
        6
    lxy42  
       Aug 22, 2018
    Q. In a fixed-point application with two decimal places, some inputs have many places and need to be rounded. Others are not supposed to have excess digits and need to be validated. What methods should be used?

    A. The quantize() method rounds to a fixed number of decimal places. If the Inexact trap is set, it is also useful for validation:

    >>>
    >>> TWOPLACES = Decimal(10) ** -2 # same as Decimal('0.01')
    >>>
    >>> # Round to two places
    >>> Decimal('3.214').quantize(TWOPLACES)
    Decimal('3.21')
    mili8908
        7
    mili8908  
    OP
       Aug 23, 2018
    @gimp 这就厉害了
    pyse
        8
    pyse  
       Aug 23, 2018
    你们的为什么没有四舍五入呢???


    >>> a = 0.9987623

    >>> print("%.2f" %a)

    1.00
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5574 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 02:53 · PVG 10:53 · LAX 19:53 · JFK 22:53
    ♥ Do have faith in what you're doing.