当前位置:  开发笔记 > 编程语言 > 正文

如何在十进制和整数之间拆分NSDecimalnumber

如何解决《如何在十进制和整数之间拆分NSDecimalnumber》经验,为你挑选了1个好方法。

我无法想象如何从NSDecimalnumber获取积分和十进制值.

例如,如果我有10,5,如何得到10和5?

如果我有10和5,如何回到10,5?


嗯好的,那看起来更好!

但是我有关于丢失小数的担心.

这是一个国际化的应用程序.例如,如果用户设置价格"124,2356",我想加载并保存确切的数字.


嗯,这是方法,但不尊重小数位数.如果有一种方法可以从我当前设置的本地知道.

这是因为代表货币价值......



1> Ashley Clark..:

我使用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];

这将分别给出10和0.5 in dollarscents变量.如果你想要整数,你可以使用这个方法乘以cents10的幂.

cents = [cents decimalNumberByMultiplyingByPowerOf10: 2];

这将反过来乘以cents100,给你10和5 in dollarscents.你也应该知道你可以使用10的负幂来划分.

所以,

cents = [cents decimalNumberByMultiplyingByPowerOf10: -2];

会撤消最后一种方法.


规模不应该是0吗?使用2的等级,10.5的价格将给出10.5的美元.从价格中减去该值将给出0美分
推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有