应使用哪个类来表示货币?
我应该用什么类来表示钱,以避免大多数的四舍五入错误?
我应该使用 Decimal
,还是简单的内置 number
呢?
有没有现成的 Money
类可以支持货币转换,我可以使用的?
我需要避免哪些常见的陷阱?
6 个回答
20
直接使用 decimal 这个库就可以了。
42
千万不要用浮点数来表示钱。浮点数在小数表示上不够准确,可能会导致一堆复杂的四舍五入错误,让你在不同货币之间转换时非常麻烦。想了解更多,可以看看马丁·福勒关于这个话题的短文。
如果你决定自己写一个类,建议你可以参考decimal这个数据类型。
我觉得python-money不是个好选择,因为它很久没更新了,源代码里还有一些奇怪和没用的代码,而且货币兑换功能也坏掉了。
可以试试py-moneyed,这个比python-money要好一些。
10
http://code.google.com/p/python-money/ “在Python中处理金钱和货币的基本工具” - 这个标题已经很清楚了 :)