代码之家  ›  专栏  ›  技术社区  ›  SunilS

python:将Unicode转换为十进制精度的浮点

  •  -3
  • SunilS  · 技术社区  · 7 年前

    目前我正在这样使用它

    float(locale.format('%.2f',(locale.atof('3.145678'))) 
    

    4 回复  |  直到 7 年前
        1
  •  1
  •   Mark Tolonen    7 年前

    内置的 round 函数舍入到指定的位数,但没有一个函数可以同时转换字符串和舍入。

    >>> round(float('3.141592'),2)
    3.14
    
        2
  •  1
  •   user2390182    7 年前

    decimal

    from decimal import Decimal as D
    from decimal import ROUND_DOWN
    
    d = D('3.145677777').quantize(D('0.01'))  
    print(d)
    # 3.15
    

    如果要截断,也可以设置舍入行为:

    d = D('3.145677777').quantize(D('0.01'), rounding=ROUND_DOWN)
    print(d)
    # 3.14
    
        3
  •  0
  •   Sanket    7 年前
    float(("%.2f"%float('3.145')))
    
        4
  •  0
  •   Nurjan    7 年前

    定义您自己的一个功能:

    def trim_decimal_points(s):
        result = float(s)
        return format(result, '.2f')
    

    然后将其用作一个功能:

    trim_decimal_points('3.145677777')