mam*_*mcx 7 math cocoa objective-c nsdecimalnumber
我无法想象如何从NSDecimalnumber获取积分和十进制值.
例如,如果我有10,5,如何得到10和5?
如果我有10和5,如何回到10,5?
嗯好的,那看起来更好!
但是我有关于丢失小数的担心.
这是一个国际化的应用程序.例如,如果用户设置价格"124,2356",我想加载并保存确切的数字.
嗯,这是方法,但不尊重小数位数.如果有一种方法可以从我当前设置的本地知道.
这是因为代表货币价值......
Ash*_*ark 19
我使用2作为比例,因为你说这是货币,但你可以选择使用另一个舍入比例.我也忽略了舍入可能带来的任何异常,因为这是一个非常简单的例子.
NSDecimalNumberHandler *behavior = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundDown scale:0 raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:NO];
NSDecimalNumber *price = /* eg. 10.5 */;
NSDecimalNumber *dollars = [price decimalNumberByRoundingAccordingToBehavior: behavior];
NSDecimalNumber *cents = [price decimalNumberBySubtracting: dollars];
Run Code Online (Sandbox Code Playgroud)
这将分别给出10和0.5 in dollars和cents变量.如果你想要整数,你可以使用这个方法乘以cents10的幂.
cents = [cents decimalNumberByMultiplyingByPowerOf10: 2];
Run Code Online (Sandbox Code Playgroud)
这将反过来乘以cents100,给你10和5 in dollars和cents.你也应该知道你可以使用10的负幂来划分.
所以,
cents = [cents decimalNumberByMultiplyingByPowerOf10: -2];
Run Code Online (Sandbox Code Playgroud)
会撤消最后一种方法.
| 归档时间: |
|
| 查看次数: |
5894 次 |
| 最近记录: |