gpt4 book ai didi

Python:四舍五入到最接近的 1/8%

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

我正在尝试计算 Python 2.7 中贷款的平均加权利率。

我从 float 开始,这是有问题的。给定这些输入(贷款 #1 $20,000 6.80%;贷款 #2 $10,000 7.90%;贷款 #3 $10,000 5.41%),正确结果是 6.7275。使用 Decimal,我的代码输出该值。

但是,我应该将该数字向上舍入到最接近的 1/8%,并将结果显示为 6.75。当我使用 format 四舍五入到两位时,我得到 6.73。虽然这是我所期望的,但不符合此函数应该执行的范围。

from decimal import Decimal

def weightedAvgFixedArgs(r1,r2,r3,b1,b2,b3):
rates = [Decimal(r1),Decimal(r2),Decimal(r3)]
balances = [Decimal(b1),Decimal(b2),Decimal(b3)]

a = Decimal(b1) * Decimal(r1)
b = Decimal(b2) * Decimal(r2)
c = Decimal(b3) * Decimal(r3)

perLoanWghtFctr = a + b + c

totalLoanAmt = sum(balances)

intRate = (perLoanWghtFctr / totalLoanAmt) * 100

return format(intRate, '.2f')

编辑:Joachim Isaksson 的建议提供了我请求的输出和我提供的输入。我尚未在我的特定用例中对此进行广泛测试,但它正确回答了我提出的问题。

# return format(intRate, '.2f')
z = intRate * 8
y = format(z, '.0f')
x = Decimal(y) / Decimal(8)
return x

最佳答案

向上舍入到最接近的 1/8%:

import math

>>> math.ceil(.73 * 8) / 8
0.75

>>> math.ceil(.76 * 8) / 8
0.875

关于Python:四舍五入到最接近的 1/8%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36210475/

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