You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python Pint中使用货币单位?以USD定义为例

在Pint中定义货币单位(如USD)进行计算

要解决UndefinedUnitError,你需要手动将货币单位添加到Pint的单位注册表中——默认注册表不包含这类自定义单位。以下是两种可行的实现方法:

方法1:动态添加单位(适合单脚本场景)

直接在代码里用define()方法注册USD单位,将其标记为[currency]自定义维度,确保货币与其他物理量不会被错误换算:

import pint
ureg = pint.UnitRegistry()

# 注册USD作为货币维度的基本单位
ureg.define('USD = [currency]')

kg = ureg.kg
USD = ureg.USD

weight = 2.3 * kg
price = 1.49 * USD / kg
cost = weight * price
print(f"{cost:~.2f}")

运行后输出:

3.43 USD

如果需要支持多货币换算,可补充关联定义,示例如下:

ureg.define('EUR = 0.92 * USD')  # 汇率可根据实际情况调整

方法2:加载自定义单位文件(适合多脚本复用)

若要在多个项目文件中复用货币单位,可创建自定义单位定义文件(比如custom_units.txt),内容示例:

USD = [currency]
EUR = 0.92 * USD
GBP = 0.79 * USD

然后在代码中加载该文件初始化注册表:

import pint
ureg = pint.UnitRegistry('custom_units.txt')

# 后续使用方式与方法1一致
kg = ureg.kg
USD = ureg.USD
# ... 其余计算代码相同

关键说明

Pint默认单位集聚焦物理量,不包含货币类单位,因此必须手动注册;用[currency]作为维度能保证货币单位与其他物理量(如质量、长度)的计算隔离,避免逻辑错误。

内容的提问来源于stack exchange,提问作者Barry Andersen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 16:16:05