以下两行的输出似乎表明 NSString 的 stringWithFormat 语句没有一致地舍入数字。它似乎从 0.75 到 0.8 正确四舍五入。但它将 0.25 舍入为 0.2。这是代码。
NSString *sRoundedScore = [NSString stringWithFormat:@"%.1f", fScore];
NSLog(@"\r\n score before rounding: %f, rounded score: %@", fScore, sRoundedScore);
当 fScore 指定为 0.25 时,输出为:
score before rounding: 0.250000, rounded score: 0.2
当 fScore 指定为 0.75 时,输出为:
score before rounding: 0.750000, rounded score: 0.8
我不得不开始使用 NSNumberFormatter 来得到这个一致的四舍五入。为什么 stringWithFormat 会在结果中产生这种变化?