2010-08-13 66 views

回答

21

您可以用[NSString stringWithFormat:@"%.3f",d]將它打印到小數點後3位。

可以近似圓形它round(d*1000)/1000,但當然這並不能保證準確,因爲1000不是2

+1

第一個沒有工作對我來說... :( 但也許只是傻了:d – cV2 2012-01-11 14:35:29

7

您可以使用:

#include <math.h> 
: 
dbl = round (dbl * 1000.0)/1000.0; 

只要記住,和雙精度浮點數儘可能接近近似爲基礎類型可以提供。確切地說,它可能不是

6

的認可的解決方案有一個小錯字動力。它缺少「%」。

下面是沒有錯字和少許額外代碼的解決方案。

double d = 1.23456; 
NSString* myString = [NSString stringWithFormat:@"%.3f",d]; 

myString將是「1.234」。

+5

你可以編輯不正確的答案... – 2012-02-15 13:22:42

+2

而不是得票嗎? – 2013-01-18 08:14:35

0

如果你想

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