寻找一个适合.NET的良好的货币数据类型,能够支持货币和汇率(以及相关行为和操作)。
- 注意:我开始在作者Kent Beck的书《通过示例学习测试驱动开发》中看到源代码,他开发了一个很好的Monetary概念。但无法在网上找到完整的源代码。该书没有一个单一的清单 - 相反,它在整本书的过程中开发了源代码。
虽然这本书没有深入探讨,但我也想让Money类支持不同的舍入机制,因为这也因金融机构在全球范围内而异。
编辑1:澄清
通过“Money class”,我的意思是我可以使用.NET数据类型来支持货币及其操作,包括货币支持和汇率计算等。这样的东西是更高级别的抽象化,可能在内部使用原始数据类型。它还可能依赖于一组诸如Money、ExchangeRate、Bank等类的绑定。
它可能是值类型(即结构体)或引用类型(即类),但无论哪种方式,都应该是完整的,并支持上述功能。
编辑2:Money数据类型的目标
(这也说明了原始的十进制、整数或其他原始类型无法满足所有Money需求)
Money数据类型的目标是:
- 安全性特征(例如,防止在不同货币类型之间进行算术运算)。
- 将货币类型与价值一起存储(例如,AUD,US,DKK)。
- 存储格式化细节(例如,小数点分组、货币符号等)。
- 转换提供程序(例如汇率)以帮助完善解决方案。
- 减少表达式中的多种货币,以达到结果。
注意: 可以从外部来源加载并使用不同的数据值,例如汇率。该问题并未暗示任何动态特性已经编码到货币概念中。