我需要截断十进制类型而不进行舍入并保留十进制类型,以尽可能高效的处理器方式.
我认为数学选项会返回一个浮点数.
量化选项返回我认为的舍入数字.
Str选项是处理器成本高昂的方式.
是否有一种简单直接的方法可以简单地将十进制类型的数字切除超过指定的十进制长度?
该quantize
方法确实有一个rounding
参数,用于控制值的舍入方式.该ROUND_DOWN
选项似乎做你想要的:
ROUND_DOWN
(朝零)
from decimal import Decimal, ROUND_DOWN
def truncate_decimal(d, places):
"""Truncate Decimal d to the given number of places.
>>> truncate_decimal(Decimal('1.234567'), 4)
Decimal('1.2345')
>>> truncate_decimal(Decimal('-0.999'), 1)
Decimal('-0.9')
"""
return d.quantize(Decimal(10) ** -places, rounding=ROUND_DOWN)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
682 次 |
最近记录: |