推荐学习书目
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 · 4907 views
    This topic created in 2833 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   ·   Solana   ·   945 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 21:02 · PVG 05:02 · LAX 14:02 · JFK 17:02
    ♥ Do have faith in what you're doing.