该程序旨在执行以下操作:
- 计算所购买股票的购买价格(包括佣金)。
- 计算所购买股票的售价(包括佣金)。
我希望这些数字能够精确计算到小数点后两位。问题是,如果用户在输入过程中不包含小数,则程序无法识别小数位。
这就是为什么我添加了“broker_purchase_commission/100.00”行,认为它会强制计算到小数点后两位。然而,这似乎不起作用。任何帮助表示赞赏。
shares_purchased = input("How many shares were bought? ")
share_initial_price = input("What was the price per share? $")
broker__purchase_commission = input("What percentage commission is due to the stockbroker? ")
broker__purchase_commission = broker__purchase_commission / 100.00
purchase_price = ((shares_purchased * share_initial_price) + ((shares_purchased * share_initial_price) * broker__purchase_commission))
print ""
print "You purchased stock worth $%d" %purchase_price
print "Two weeks later you decide to sell the stock."
print ""
shares_sold = input("How many shares are sold? ")
share_present_price = input("What is the price per share? $")
broker__sale_commission = input("What percentage commission is due to the stockbroker? ")
broker__sale_commission = broker__sale_commission / 100.00
sale_price = ((shares_sold * share_present_price) + ((shares_sold * share_present_price) * broker__purchase_commission))
print "You sold stock worth $%d" %sale_price
最佳答案
对于金钱的东西,你需要精度,你必须使用十进制模块并将所有数字转换为十进制,如下所示:
from decimal import *
Decimal(number)
所以你应该将所有输入转换为 Decimal
shares_purchased = Decimal(input("How many shares were bought? ")).
并使用 Decimal(100.00)
将 100.00
转换为除法中的 Decimal。
对于打印,请确保不要将结果转换为整数。
print "You purchased stock worth ", purchase_price
而不是
print "You purchased stock worth $%d" %purchase_price
关于python - 如何让 Python 处理 int 输入,将它们转换为两位小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34497398/