输出格式化 Python 3.2

发布于 2024-11-19 14:35:23 字数 384 浏览 1 评论 0原文

我有一个关于程序输出的问题。

 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 美分”,并用美元和美分这样拼写?

谢谢!

I have a question relating to the output of a program.

 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')

This is my write to file function.
Does anybody know where I can look to find out how to write 123.45 as "123 dollars 45 cents" with dollars and cents spelled out like that?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

妞丶爷亲个 2024-11-26 14:35:23

这会起作用:

>>> amount = 123.45
>>> '{} dollars {:.0f} cents'.format(int(amount), (amount - int(amount)) * 100)
'123 dollars 45 cents'

This would work:

>>> amount = 123.45
>>> '{} dollars {:.0f} cents'.format(int(amount), (amount - int(amount)) * 100)
'123 dollars 45 cents'
请爱~陌生人 2024-11-26 14:35:23

如果您将 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 模块。

If you have amount stored as a float(*), you can use the % formatting operator as follows:

"%d dollars %d cents" % (int(amount), int(amount * 100 % 100))

or

dollars = int(amount)
"%d dollars %d cents" % (dollars, int((amount - dollars) * 100))

(*) Which you should never do in a real financial app, since floating point is prone to rounding errors; use the Decimal module instead.

鲜血染红嫁衣 2024-11-26 14:35:23

在 Python 3(全部 3.x?)中,对于“简单”浮点数,您可以编写:

'{} dollars {} cents'.format( *str(amount).split('.') )

输出:

'123 dollars 45 cents'

显然,str() 会搞乱浮点数,如 1.0000000001e-15

In Python 3 (all 3.x?) for "simple" floats you can write:

'{} dollars {} cents'.format( *str(amount).split('.') )

Output:

'123 dollars 45 cents'

Apparently, str() will screw float numbers like 1.0000000001e-15

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文