在我的代码中,我有一个双号2.555
。我使用%.2f
通过NSLog显示它有2.55
,但输出是2.56。这是我不想要的数字的四舍五入!我知道有ceil(double)
和floor(double)
可供使用,但他们在这里没有帮助我。
double div = a/b;
NSLog(@"DIV = %.f", div);
答案 0 :(得分:1)
如果没有看到您的代码,就无法找到错误。以下代码将根据您的需要进行操作。
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setRoundingMode:NSNumberFormatterRoundDown];
[numberFormatter setMaximumFractionDigits:2];
NSString *numberAsString = [numberFormatter stringFromNumber:[NSNumber numberWithDouble:2.555]];
NSLog(@"%@",numberAsString);
[numberFormatter release];
您可以参考此NSNumberFormatter
的链接答案 1 :(得分:0)
我认为有一种更简单的方法可以做到这一点。 如果我理解正确,你不想使用floor(),因为你想保持“div”的内容不变。如果这是正确的,那么您可以执行以下操作。
NSLog(@“DIV =%。2f”,trunc(div * 100)/ 100);
NSLog(@“DIV =%。2f”,floor(div * 100)/ 100);
以上将在第二个之后删除小数,但仅用于显示。 “div”的内容不变。