¿Qué tipo de datos Swift uso para la moneda?

Tengo una aplicación iOS que realizará una gran cantidad de aritmética básica sobre los numbers que representan la divisa USD (por ejemplo, 25.00 que representa $ 25.00).

Me he metido en un montón de problemas al utilizar el tipo de datos Double en otros idiomas como Java y Javascript, así que me gustaría saber cuál es el mejor tipo de datos para usar en Swift.

Use NSDecimalNumber ( más información aquí ). Ejemplo:

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

Probablemente querrá usar una extensión como esta para agregar la sobrecarga del operador a la class NSDecimalNumber .

Hay una lib muy buena llamada Money :

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

Hay muchas características agradables además de eso, como las monedas de tipo seguro:

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

El operador binary '+' no puede aplicarse a operandos del tipo 'EUR' (también conocido como 'Dinero') y 'USD' (también conocido como 'Dinero').