pyt*_*ewb 9 python currency rounding
我遇到的问题是我将结果四舍五入到小数点后两位.我的应用程序获得了正确的结果,但是,我很难将应用程序舍入到最接近的小数,就像使用货币一样
cost = input("\nEnter the 12 month cost of the Order: ")
cost = float(cost)
print("\n12 Month Cost:",
cost * 1,"USD")
print("6 Month Cost:",
cost * 0.60,"USD")
print("3 Month Cost:",
cost * 0.36,"USD")
Run Code Online (Sandbox Code Playgroud)
所以例如,如果12个月的价格是23美元,6个月的价格是13.799999999999999但我希望它显示13.80
我已经环顾了谷歌以及如何围绕一个数字,但在舍入结果方面找不到多少帮助.
Nik*_* B. 14
您应该使用格式说明符:
print("6 Month Cost: %.2fUSD" % (cost * .6))
Run Code Online (Sandbox Code Playgroud)
更好的是,你根本不应该依赖浮点数decimal而是使用模块,它可以提供任意精度,并且可以更好地控制舍入方法:
from decimal import Decimal, ROUND_HALF_UP
def round_decimal(x):
return x.quantize(Decimal(".01"), rounding=ROUND_HALF_UP)
cost = Decimal(input("Enter 12 month cost: "))
print("6 Month Cost: ", round_decimal(cost * Decimal(".6")))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12621 次 |
| 最近记录: |