最多*最多*小数位数的大多数Python方式打印

发布于 2021-01-29 19:19:13

我想格式化最多不超过2个小数位的浮点数列表。但是,我不想尾随零,也不想尾随小数点。

因此,例如4.001=> 44.797=> 4.88.992=> 8.9913.577=> 13.58

简单的解决方案是。但是,这看起来很丑陋,而且看起来很脆弱。还有更好的解决方案,也许带有一些神奇的格式标志? ('%.2f' % f).rstrip('.0')('%.2f' % f).rstrip('0').rstrip('.')

关注者
0
被浏览
155
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您需要将0.剥离分开;这样你永远不会剥夺自然0

    或者,使用format()函数,但这实际上归结为同一件事:

    format(f, '.2f').rstrip('0').rstrip('.')
    

    一些测试:

    >>> def formatted(f): return format(f, '.2f').rstrip('0').rstrip('.')
    ... 
    >>> formatted(0.0)
    '0'
    >>> formatted(4.797)
    '4.8'
    >>> formatted(4.001)
    '4'
    >>> formatted(13.577)
    '13.58'
    >>> formatted(0.000000000000000000001)
    '0'
    >>> formatted(10000000000)
    '10000000000'
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看