[英]Round doubles in Objective-C
我的格式为34.123456789
。 如何将其更改为34.123?
我只想要小数点后的3位数。
您可以使用[NSString stringWithFormat:@"%.3f",d]
将其打印到3位小数。
您可以用round(d*1000)/1000
近似圆形,但当然不能保证精确,因为1000不是2的幂。
您可以使用:
#include <math.h>
:
dbl = round (dbl * 1000.0) / 1000.0;
请记住,浮点数和双精度数与底层类型可以提供的近似值相近。 这可能不准确。
批准的解决方案有一个小错字。 它缺少“%”。
这是没有拼写错误和一些额外代码的解决方案。
double d = 1.23456;
NSString* myString = [NSString stringWithFormat:@"%.3f",d];
myString将是“1.234”。
如果你想做
34.123456789 -> 34.123
34.000000000 -> 34 not 34.000
您可以使用NSNumberFormatter
NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];
[fmt setMaximumFractionDigits:3]; // 3 is the number of digits
NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:34.123456789]]); // print 34.123
NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:34.000000000]]); // print 34
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.