2012-09-19 21 views
5

我正在嘗試使用分段控件設置浮點數位數。iPhone:浮點後應該有多少個數字

所以我用「0」,「1」,「2」和「3」創建了一個分段控件。 我想用變量設置逗號後的數字(self._segmentedControl.selectedSegmentIndex)。

我知道我能決定多少個數字後加上逗號應該是這樣的:

sliderValue.text = [NSString stringWithFormat:@"%.3f",slider.value]; 

有人可以幫我嗎?

+1

和Xcode的相關問題是:??? – 2012-09-19 17:09:59

+0

我怎麼能設置與self._segmentedControl.selectedSegmentIndex – MaxB

+0

輸出digts的數量問題是,**是一個*不是Xcode相關***。 – 2012-09-19 17:13:14

回答

7

你甚至可以做到一步到位:

sliderValue.text = [NSString stringWithFormat:@"%.*f", numberOfDigits, slider.value]; 
2

您可以分兩步進行。

NSString *format = [NSString stringWithFormat:@"%%.%df", numberOfDigits); 
sliderValue.text = [NSString stringWithFormat:format, slider.value]; 
+0

呵呵。我的。神。你用8秒的時間擊敗了我!而且我們甚至對格式化字符串使用了相同的變量名稱! – 2012-09-19 17:12:25

+0

Downvoter:** reason ??? **爲什麼有人來這裏隨機downvoting有效的答案!去搞砸自己,匿名殺手! ***這個答案很好!!! *** – 2012-09-19 17:16:54

2
NSString *format = [NSString stringWithFormat:@"%%.%df", numberOfDecimalPlaces]; 
sliderValue.text = [NSString stringWithFormat:format, slider.value]; 

這應該做的伎倆。謹防格式化字符串攻擊。

+0

哇,這次我們幾乎得到了完全相同的解決方案。 :-) – DrummerB

+0

Downvoter:** reason ??? ** – 2012-09-19 17:16:09

+0

可能有人喜歡單線解決方案? – nhahtdh

1

檢查是否有效。我只用C++測試了這個,但是由於String Format的文檔指向了IEEE printf specification,我相信它也適用於Objective-C。

sliderValue.text = [NSString stringWithFormat: @"%.*f", places, slider.value]; 
+0

它的工作。 (我在點擊「Post」之前沒有看到您的答案。) –