什么样的对象类型用于存储金额?我有一个UITextField
,用户可以用美元输入一笔金额,我将转换为另一种货币,我想知道存储金额的类型(float
/ {{1}这对于那个领域的键盘选择了什么?
答案 0 :(得分:4)
您可以使用NSDecimal或NSDecimalNumber,它们是精确的,存储为基数为10的数字,与float或double不同。
答案 1 :(得分:1)
你应该做以下事情
答案 2 :(得分:1)
我会使用NSDecimalNumber 或NSDecimal,因为它们存储在base10中。
对于键盘,有Decimal pad。
答案 3 :(得分:1)
我建议使用NSDecimalNumber。此外,您还需要使用以下方法:
- (NSDecimalNumber *)decimalNumberByAdding:(NSDecimalNumber *)decimalNumber withBehavior:(id < NSDecimalNumberBehaviors >)behavior
更基本的
- (NSDecimalNumber *)decimalNumberByAdding:(NSDecimalNumber *)decimalNumber
因为您可以提供的行为之一是:
NSRoundBankers
舍入到最接近的可能返回值;什么时候 在两种可能性之间,返回最后一种可能性 数字是均匀的。在实践中,这意味着,从长远来看, 数字将随着它们向下舍入而被四舍五入;那里 不会有系统的偏见。
当然也可以使用NSDecimal,但我更喜欢NSDecimalNumber的OO API而不是NSDecimal的基于C的API。