1

不明白为什么使用 NSNumberFormatter 与 NSDecimalNumber 方法将字符串转换为十进制数会产生不同的结果。

NSNumberFormatter *customNumFmt = [[NSNumberFormatter alloc] init];
customNumFmt.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
customNumFmt.generatesDecimalNumbers = YES;
customNumFmt.numberStyle = NSNumberFormatterDecimalStyle;
NSDecimalNumber *result = [customNumFmt numberFromString:@"76.99"];

结果,作为标准 NSObject 描述方法的输出,将为 76.98999999999999

使用与 NSDecimalNumber 辅助方法相同的逻辑:

NSDecimalNumber *result = [NSDecimalNumber decimalNumberWithString:@"76.99" locale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];

结果,作为标准 NSObject 描述方法的输出,将为 76.99

4

0 回答 0