不明白为什么使用 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