我需要一种方法将浮点数四舍五入到给定的小数位数,但我希望始终向下舍入。
例如,代替
>>> round(2.667, 2)
2.67
我宁愿
>>> round_down(2.667, 2)
2.66
你有一个朋友在quantize and ROUND_FLOOR
>>> from decimal import Decimal,ROUND_FLOOR
>>> float(Decimal(str(2.667)).quantize(Decimal('.01'), rounding=ROUND_FLOOR))
2.66
>>> float(Decimal(str(-2.667)).quantize(Decimal('.01'), rounding=ROUND_FLOOR))
-2.67
请注意,您可以使用ROUND_DOWN对于正数。正如 interjay 提到的在评论中, ROUND_DOWN
向零舍入因此可能会返回错误的负数值。
>>> from decimal import Decimal,ROUND_DOWN
>>> Decimal(str(2.667)).quantize(Decimal('.01'), rounding=ROUND_DOWN)
Decimal('2.66')
>>> float(Decimal(str(2.667)).quantize(Decimal('.01'), rounding=ROUND_DOWN))
2.66
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)