将小数点限制为所需的值

Cor*_*ode 4 double objective-c

可能重复:
Objective-C
目标-C中的舍入数字:如何在float中截断额外的零?
修正浮点数

在Objective C中,我有一个double,它接收到如下所示的计算答案:

double answer = a / b;
Run Code Online (Sandbox Code Playgroud)

double变量有时可以是整数,但也可以是一个分数,例如

NSLog(@"%f", answer)
Run Code Online (Sandbox Code Playgroud)

这可以返回2.000000或5.142394或2.142000.

我想知道是否有一种方法来编辑小数位,以便尾随的0是不可见的,例如:

2.000000将是2
5.142394将是5.142394
2.142000将是2.142

如何才能做到这一点?

wpe*_*rse 10

如果你想硬编码你所追求的小数位数,这会给你两个小数位:

NSLog(@"%.2f", answer);
Run Code Online (Sandbox Code Playgroud)

阅读有关格式说明符的更多信息:

http://www.cplusplus.com/reference/clibrary/cstdio/printf/

或者,如果您想要即时更改小数位数,请考虑使用NSNumberFormatter类:

int maxDigitsAfterDecimal = 3; // here's where you set the dp

NSNumberFormatter * nf = [[NSNumberFormatter alloc] init];
[nf setMaximumFractionDigits:maxDigitsAfterDecimal];

NSString * trimmed = [nf stringFromNumber:[NSNumber numberWithDouble:3.14159]];
NSLog(@"%@", trimmed); // in this case, 3.142

[nf release];
Run Code Online (Sandbox Code Playgroud)