我有一个与程序输出有关的问题。
def writeOutput():
output.write(str(gallons) + '\n')
output.write(str(usage) + '\n')
output.write(str(sewer) + '\n')
output.write(str(tax) + '\n')
output.write(str(total) + '\n')
output.write('_______________________' + '\n')
这是我写入文件的功能。 有没有人知道我在哪里可以找到如何写123.45作为“123美元45美分”与美元和美分拼写出来的那样?
谢谢!
答案 0 :(得分:2)
这样可行:
>>> amount = 123.45
>>> '{} dollars {:.0f} cents'.format(int(amount), (amount - int(amount)) * 100)
'123 dollars 45 cents'
答案 1 :(得分:1)
如果您将amount
存储为float
(*),则可以使用%
格式化运算符,如下所示:
"%d dollars %d cents" % (int(amount), int(amount * 100 % 100))
或
dollars = int(amount)
"%d dollars %d cents" % (dollars, int((amount - dollars) * 100))
(*)你应该永远不要在真正的金融应用程序中做,因为浮点容易出现舍入错误;改为使用Decimal
模块。
答案 2 :(得分:0)
在Python 3(所有3.x?)中,对于“简单”浮动,你可以写:
'{} dollars {} cents'.format( *str(amount).split('.') )
输出:
'123 dollars 45 cents'
显然,str()会隐藏像1.0000000001e-15
这样的浮点数