【问题标题】:Is there a way to format a variety of currencies on Python?有没有办法在 Python 上格式化各种货币?
【发布时间】:2010-08-10 22:45:46
【问题描述】:

我有一个 Python Web 服务器(mod_python,如果这有什么不同的话),我想开始格式化一些货币。格式化货币时,我有两条信息 - 值(作为数字)和货币(作为三个字母 ISO 4217 code)。我还可以检索正在格式化货币的国家(甚至城市)。我可以预期会格式化多种货币 - 美元、加元、日元、英镑、欧元等。每个请求可能是不同的货币。

我知道the locale module,但它并没有达到我想要的效果。该模块似乎基于计算机的区域设置,因此它不适用于格式化任何给定的货币。

有没有办法在 Python 中做到这一点?或者有人知道可以解决这个问题的好图书馆吗?

【问题讨论】:

  • 格式取决于语言环境,而不是货币。例如,EUR 在多个国家/地区使用,这些国家/地区有几种不同的格式规则。
  • 嗯,好点子。我也可以访问国家代码。我会坚持下去的。

标签: python formatting currency


【解决方案1】:

为了我的国际化需求,我几乎总是求助于ICU,这是一个在广度和深度上都非常棒的软件包——通常是通过pyIcu,尽管过去我不得不自己做一些包装pyIcu 尚未封装我需要的 ICU 的某个角落(我不确定他们当前是否封装了您需要的所有货币格式化操作)。

PyIcu 的文档是 here,可以在 ICU 自己的文档 here 的“顶部”阅读——换句话说,PyIcu 特定文档本质上是关于如何“翻译”的“短语和字典” “ ICU 自己的、以 C++ 为重点的文档,变成了 PyIcu 的文档(以及以 Python 为重点的文档;-)。是的,我知道,并不理想——我猜这不是唯一一个文档不完善的开源软件包(我认为这是一些有进取心的人写一本“PyIcu,缺失的手册”之类的机会;- )。

【讨论】:

    【解决方案2】:

    我确定您可以使用正则表达式或十进制格式,但这个模块看起来很有希望:

    http://code.google.com/p/python-money/

    Python-money 谨慎提供 设计了基本的 Python 原语 处理金钱和货币。

    本模块的主要目标 是为了帮助发展 通过增加金融应用 可测试性和可重用性,减少 代码重复和降低风险 代码中出现的缺陷。

    该模块定义了两个基本的 Python 类——一个货币类和一个 钱类。它还预先定义了所有 根据世界货币 ISO 4217 标准。课程 定义一些基本操作 用钱工作,压倒一切 Python的加法、减法、 乘法等,以便 用钱工作的帐户 不同的货币。他们还定义 货币感知比较运算符。 避免浮点精度 货币计算错误, 模块使用 Python 的 Decimal 类型 独家。

    模块的设计基于 金钱企业设计模式, 如 Martin Fowler 中所述 《企业应用模式 建筑”。

    【讨论】:

      猜你喜欢
      • 2012-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-24
      相关资源
      最近更新 更多