Немного запутался насчет NSDecimalNumber? - PullRequest
0 голосов
/ 14 ноября 2018

есть короткий код

    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)

print" 78.98999999999999 "....

почему масштаб недействителен?ожидать "78,99"


1 Ответ

0 голосов
/ 14 ноября 2018

fin в порядке, но NSLog звонит doubleValue.В более ранних версиях macOS NSLog вызывал description, который возвращает "78.99".Решение: NSLog(@"%@", fin.description).

...