如何使用NSDecimalNumber获得除法的整数和模(mod) [英] How do you get the int and modulo (mod) of division with an NSDecimalNumber

查看:242
本文介绍了如何使用NSDecimalNumber获得除法的整数和模(mod)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对NSDecimalNumber及其行为感到困惑。我有一个NSDecimalNumber,代表一个美元值,例如$ 37.50。我想找出5.0表示该数字有多少次,然后知道还剩下多少。我可以得到直除法并得到7.50,但我想得到7 mod 2.50。我可以转换为整数,但需要保存美分,所以想知道框架中是否有技巧吗?

I am confused by NSDecimalNumber and its "behaviors". I have an NSDecimalNumber that represents a dollar value, say $37.50. I'd like to find out how many times say 5.0 goes into that number and then know what's left over. I can get the straight division and get 7.50 but I want 7 mod 2.50. I could convert to an integer but need to save the "cents" so wondering if there's some tricks in the framework?

推荐答案

使用彼得·霍西(Peter Hoseys)的例子,但使用iOS代码:

Using Peter Hoseys example, but with iOS code:

NSDecimalNumber *dividend = [NSDecimalNumber decimalNumberWithDecimal:[[NSNumber numberWithDouble:37.5] decimalValue]];

NSDecimalNumber *divisor = [NSDecimalNumber decimalNumberWithDecimal:[[NSNumber numberWithDouble:5.0] decimalValue]];

NSDecimalNumber *quotient = [dividend decimalNumberByDividingBy:divisor withBehavior:[NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundDown scale:0 raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:NO]];

NSDecimalNumber *subtractAmount = [quotient decimalNumberByMultiplyingBy:divisor];

NSDecimalNumber *remainder = [dividend decimalNumberBySubtracting:subtractAmount];

这篇关于如何使用NSDecimalNumber获得除法的整数和模(mod)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆