我有一个值,我想只看到小数点上的两位数。
期望输出= 5.49,但仍然返回5.49000000002
value = 5.49000000002;
double tempValue = (round(value*100))/100.0;
还尝试了以下示例,仍然保持不变。
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2];
[formatter setRoundingMode: NSNumberFormatterRoundFloor];
double value = 5.49000000000002;
double x = [[formatter stringFromNumber:[NSNumber numberWithDouble:value]] doubleValue];
double y = [[NSString stringWithFormat:@"%.2f", value] doubleValue];
答案 0 :(得分:0)
有时双打不能显示特定值。由于以二进制表示,它有时会最终真正接近。你需要在那里舍入更少的工作,更多的是截断输出。通常情况并不重要,只需使用printf或其他东西来显示输出的相关字节数。你不能完美地用二进制命中每个十进制数。