gpt4 book ai didi

python - 如何在不舍入的情况下设置精度?

转载 作者:太空宇宙 更新时间:2023-11-04 01:16:51 24 4
gpt4 key购买 nike

我在数据库中有大整数 (numeric(24,0))。我想把这个数字转换成“人类可读”的格式。我有功能:

def from_int(value, precision):
fprec = "%." + str(precision) + "f"
return fprec % (Decimal(value) * (Decimal(10)**(-1*precision)))

它有效:

from_int(1000000, 6)
'1.000000'
from_int(1000000, 8)
'0.01000000'
from_int(1000000, 12)
'0.000001000000'
from_int(1000000, 2)
'10000.00'

但对于:

from_int(19999999999999999, 2)
'200000000000000.00'

如何在不舍入的情况下设置精度?

最佳答案

使用 %f 格式化会将数字转换为 float ,丢失精度。而是使用 str:

def from_int(value, precision):
return str(Decimal(value) * Decimal(10)**(-precision))

关于python - 如何在不舍入的情况下设置精度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23994609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com