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