2013-06-01 173 views
1

我想知道有關格式說明符所看到的內容。我看到的是這樣的:格式說明符

@"%03.1f", someFloat 

我測試,它的日誌

"1.5" 

這是什麼所謂的,與%f之間03.1的東西回來了?

+0

真的嗎?你有搜索嗎? [字符串格式說明符](https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html)--- **更新**好吧,不是最好的參考,但是 [字符串格式說明符](https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html)指向[fprintf,printf,snprintf,sprintf - 打印格式化輸出(http://pubs.opengroup.org/onlinepubs/009695399/functions/printf.html)。你也可以閱讀[printf,fprintf,sprintf,snprintf](http://en.cppreference.com/w/c/io/fprintf)。 –

+1

格式'「%03.1f」'應該創建輸出'1.5',而不是'001.5'。 –

+0

是的,這不是我的代碼,我是在創建這個問題時寫的。我認爲它是這樣工作的:在「。」之前有3位數字。和「。」後面的1位數字。但我現在知道它是如何工作的:P – Arbitur

回答

1

寬度(%3f)表示我們需要爲輸出保留三位數(位置)。

%3.1f - >(印刷作爲浮點至少3寬和1:1的精度)

Format Specifiers

3

這是一個基本的問題。它來自C語言。

默認浮點值可以被格式化,如:

%w.pf 

這裏:

w爲寬度
p表示精度

請檢查C format specifiers

實施例:

 
Printing 3.141592 using %f  displays 3.141592 
Printing 3.141592 using %1.1f displays 3.1 
Printing 3.141592 using %1.2f displays 3.14 
Printing 3.141592 using %3.3f displays 3.142 
Printing 3.141592 using %4.4f displays 3.1416 
Printing 3.141592 using %4.5f displays 3.14159 
Printing 3.141592 using %09.3f displays 00003.142 
Printing 3.141592 using %-09.3f displays 3.142 
Printing 3.141592 using %9.3f displays  3.142 
Printing 3.141592 using %-9.3f displays 3.142 
+0

+1瞭解詳細的答案。 –

+0

與您的示例一樣完整,您應該顯示一些沒有指定寬度的示例,以及一些沒有指定精度的示例。也許一個例子表明,如果寬度大於寬度,寬度將被忽略。 – rmaddy

0

%w.pf

其中

瓦特 - >合計值的最小寬度

p - >後的精確的小數的。

float f = 2345.34567; 
NSLog(@"%2.2f",f); //Prints: "2345.35" 
NSLog(@"%.4f",f); //Prints: "2345.3556" 
NSLog(@"%8.2f",f); //Prints: " 2345.35"(includes 1 space to make width of f '8') 
NSLog(@"%15.2f",f); //Prints: "  2345.35"(includes 8 spaces to make width of f '15')