Swift中的小数

Nul*_*sis 11 ios swift ios8

我正在编写一个Swift应用程序,并在数据库中处理小数(以小数形式存储在mysql中,有2位数.基本上它是每天销售的人,所以通常是0到1000美元之间的任何东西,但不是数百万,并且没有什么是疯狂的尾随小数,只是总是舍入到2位小数).

引用这个帮助我: 如何在ios上正确格式化货币

..但我想在这里做一个快速的理智检查,并确保这个策略没问题.即我会使用NSDecimal或NSDecimalNumber(有一个首选的快速等价??)

在Swift中处理货币时,你会建议我做什么?我也想使用基于语言环境的货币符号.我有一个名为Sales的类,其中包含有问题的数量.你推荐什么数据类型?

抱歉,如果我是懒惰的,我实际上有一些想法,但在"正确"的方法中感到有点不知所措,特别是在区域敏感的方式,并希望在这里与大家一起检查.

非常感谢!

jtb*_*des 11

更新斯威夫特3:Decimal是现提供内置支持为运营商一样*,/,+,<,等.当在任何上下文(传递给Objective-C的)使用,它的桥接NSDecimalNumber.


老答案:

NSDecimal在Swift中并不真正支持它(它是一种奇怪的不透明指针类型),但是NSDecimalNumber- 和在Obj-C中一样,它是用于基数十次运算的最好的东西(因为它实际上在十进制中执行它的操作).NSLocale,NSNumberFormatter和朋友一切工作过,并应满足您的本地化需求.