我使用NSDecimal是因为我必须为应用程序存储非常大的值。我希望能够使用NSDecimalDivide函数将两个NSDecimals相除并将结果四舍五入到最接近的整数。
NSDecimal testOne = [[NSDecimalNumber decimalNumberWithString:@"1064"] decimalValue];
NSDecimal cost = [[NSDecimalNumber decimalNumberWithString:@"10"]decimalValue];
NSDecimal value;
NSDecimalDivide(&value, &testOne, &cost, NSRoundDown);
NSString *string = NSDecimalString(&value, _usLocale);
NSLog(@"Here is the cost%@",string);
这个输出为106.4,我希望它输出为106。有人知道如何将NSDecimal数舍入为整数值吗?
最佳答案
一种可行的方法是使用NSDecimalNumberHandler
并将scale
设置为0
。
NSDecimalNumber *number1 = [NSDecimalNumber decimalNumberWithString:@"1064"];
NSDecimalNumber *number2 = [NSDecimalNumber decimalNumberWithString:@"10"];
NSDecimalNumberHandler *behavior = [[NSDecimalNumberHandler alloc] initWithRoundingMode:NSRoundDown
scale:0
raiseOnExactness:NO
raiseOnOverflow:NO
raiseOnUnderflow:NO
raiseOnDivideByZero:YES];
NSDecimalNumber *result = [number1 decimalNumberByDividingBy:number2 withBehavior:behavior];
NSLog(@"Here is the cost %@", result);
请注意,我根本没有使用原始的
NSDecimal
,并且我还是会建议您。但是,如果要直接使用
NSDecimal
,可以使用方便的NSDecimalRound
函数。
关于ios - 如何获取NSDecimal舍入到最接近的整数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36225894/