有一个简短的代码
NSString *numString = @"2128.123123";
NSDecimalNumber *large = [NSDecimalNumber decimalNumberWithString:numString];
NSDecimalNumberHandler *decimalHandler = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundPlain scale:2 raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:YES];
NSDecimalNumber *fin = [large decimalNumberByRoundingAccordingToBehavior:decimalHandler];
NSLog(@"%@",fin);
似乎可以,打印“ 2128.12”。
.....
但是您可以尝试numString = @“ 78.991”;
NSLog(@"%@",fin)
打印“ 78.98999999999999”。...
为什么比例无效?期望为“ 78.99”
答案 0 :(得分:2)
fin
可以,但是NSLog
呼叫doubleValue
。在早期版本的macOS中,NSLog
确实调用了description
并返回了“ 78.99”。解:
NSLog(@"%@", fin.description)
。