gpt4 book ai didi

python - Babel numbers format_currency 函数

转载 作者:太空宇宙 更新时间:2023-11-03 14:22:42 25 4
gpt4 key购买 nike

我在一个使用多种语言的网站上工作,为了相应地显示价格/货币,我们使用了 babel 库。问题是调用 format_currency 时它总是返回美分部分,即使价格被显式转换为整数也是如此。

例子:

>>> print format_currency(100, 'EUR', locale='fr_FR')
100,00 €

>>> print format_currency(int(100), 'EUR', locale='fr_FR')
100,00 €

有没有一种方法可以让返回值排除美分部分,使其具有类似的东西

>>> print format_currency(int(100), 'EUR', locale='fr_FR')
100 €

最佳答案

您可以指定自定义格式:

format_currency(100, 'EUR', format=u'#,##0\xa0¤', locale='fr_FR')

参见 LDML markup spec更多细节; \xa0 字节是 U+00A0 NO-BREAK SPACE特点;而不是常规空间。

对于 fr_FR 默认值是 #,##0.00\xa0¤.00 部分表示小数部分应该是印有两位数字,如果不存在则填充。我上面的示例只是删除了小数部分,如果数字不是精确的整数,您也可以使用 .## 来允许分数,但请注意,在这种情况下 .5 打印的值没有第二位数字!

演示:

>>> from babel.numbers import format_currency
>>> print format_currency(100, 'EUR', format=u'#,##0\xa0¤', locale='fr_FR')
100 €
>>> print format_currency(100.0, 'EUR', format=u'#,##0.##\xa0¤', locale='fr_FR')
100 €

关于python - Babel numbers format_currency 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25426217/

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