推荐学习书目
› 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 · 5370 views
    This topic created in 2999 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
    zh0408
    Aug 22, 2018
    1
    round()
    gnozix
    gnozix
    Aug 22, 2018
    2
    format
    mili8908
    mili8908
    OP
    Aug 22, 2018
    3
    @zh0408
    In [2]: a = 0.998765

    In [3]: round(a,2)
    Out[3]: 1.0
    gimp
    gimp
    Aug 22, 2018❤️1
    4
    >>> 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
    chenxingyu1021
    Aug 22, 2018❤️1
    5
    int(a*100)/100
    lxy42
    lxy42
    Aug 22, 2018
    6
    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
    mili8908
    OP
    Aug 23, 2018
    7
    @gimp 这就厉害了
    pyse
    pyse
    Aug 23, 2018
    8
    你们的为什么没有四舍五入呢???


    >>> a = 0.9987623

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

    1.00
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   659 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 20:09 · PVG 04:09 · LAX 12:09 · JFK 15:09
    ♥ Do have faith in what you're doing.