如何计算最多2位小数的双精度值,但不会舍入数字

Tus*_* J. 2 iphone objective-c ios

我有一个双号,例如"12.1278",我想将这个数字仅转换为2位小数,如"12.12".

但是,当我使用以下代码时:

double d = 12.1278;
NSLog(@"Float upto 2 decimals : %.2f", d);
Run Code Online (Sandbox Code Playgroud)

输出是:

浮动最多2位小数:12.13

我希望转换如下:

浮点最多2位小数:12.12

zap*_*aph 5

使用NSNumberFormatterroundingModeNSNumberFormatterRoundFloor.

double d = 12.1278;

NSNumberFormatter *formatter = [NSNumberFormatter new];
[formatter setRoundingMode:NSNumberFormatterRoundFloor];
[formatter setMaximumFractionDigits:2];
NSString *numberString = [formatter stringFromNumber:@(d)];

NSLog(@"numberString: %@", numberString);
Run Code Online (Sandbox Code Playgroud)

NSLog输出:

numberString:12.12