2013-06-28 57 views
1

我需要使NSNumber只顯示4個小數點。這部分代碼是有效的,但它輸出的結果不是前導零。如何在雙精度顯示前導零點

double resultRoundToDecimal = [result doubleValue]; 
    NSNumberFormatter *resultFormatter = [[NSNumberFormatter alloc] init]; 
    [resultFormatter setRoundingMode:NSNumberFormatterRoundHalfUp]; 
    [resultFormatter setMaximumFractionDigits:4]; 
    resultData = [resultFormatter stringFromNumber:[NSNumber numberWithDouble:resultRoundToDecimal]]; 

例如: 1/3 = 0.3333

我想: 1/3 = 0.3333

我怎樣才能做到這一點?

回答

0

預先設置0或使用數字格式化程序。

NSString *printStr = @"0"; 
printStr = [NSString stringByAppendingString: resultData]; 

否則,您可以使用數字格式化程序或類似的東西。如果你只是輸出一個字符串,爲什麼不這樣做呢?

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNumberFormatter_Class/Reference/Reference.html

+0

'resultData = 「0」 + resultData;' - 真的嗎?你真的認爲這會起作用嗎?即使這樣做,這將是一個有效的解決方案? Nah ... – 2013-06-28 10:21:54

+0

是resultData一個字符串?你不能只是預先加0到一個字符串? – FaddishWorm

+0

如果你不知道的東西,不要給不好的建議。不,你不能。 – 2013-06-28 10:25:16

2

您可以選擇使用字符串格式化過,像下面

float val=1./3; 

NSString *resultData=[NSString stringWithFormat:@"%0.4f",val]; 

NSLog(@"Result = %@",resultData); 
+0

非常有趣的想法。我已經爲您的代碼添加了一些修正「float val = 1./3;」 NSLog顯示了我需要的東西。現在我將嘗試將它與變量一起使用。謝謝。 –

+0

它解決了我的問題,但現在它總是輸出4個小數點的變量。結果,我需要的是這樣的:2 + 2 = 4; 4/3 = 1.3333;三分之一= 0.3333。現在我得到2 + 2 = 4.0000; 4/3 = 1.3333;三分之一= 0.3333。 –