我将哪种Swift数据types用于货币

我有一个iOS应用程序将执行很多代表美元货币的数字的基本算术(例如25.00代表$ 25.00)。

我在Java和Javascript等其他语言中使用Doubletypes的数据types时遇到了很多麻烦,所以我想知道在Swift中使用货币的最佳数据types。

使用NSDecimalNumber ( 更多信息在这里 )。 例:

 let a = NSDecimalNumber(integer: 123456) let b = NSDecimalNumber(integer: 1000) let c = a.decimalNumberByDividingBy(b) println(c) // Result: "123.456" 

您可能会想要使用像这样的扩展将运算符重载添加到NSDecimalNumber类。

有一个非常好的库称为金钱 :

 let money: Money = 100 let moreMoney = money + 50 //150 

除此之外还有很多不错的function,比如types安全的货币:

 let euros: EUR = 100 let dollars: USD = 1500 euros + dollars //Error 

二元运算符'+'不能用于'EUR'(aka'_Money')和'USD'(aka'_Money')types的操作数