2012-09-19 29 views
5

bir noktadan sonra kaç basamak olmalıdır Bir bölümlü kontrol ile bir floatın basamak sayısını ayarlamaya çalışıyorum.iPhone: Float

"0", "1", "2" ve "3" ile bölümlere ayrılmış bir denetim oluşturdum. Bir virgül ile (self._segmentedControl.selectedSegmentIndex) bir değişkenin ardından rakamları ayarlamak istiyorum.

Ben virgül böyle olmalı kaç hane sonra karar biliyoruz:

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

Birisi bana yardımcı olur musunuz?

+1

Ve Xcode ile ilgili soru: ??? –

+0

self._segmentedControl.selectedSegmentIndex – MaxB

+0

'un çıktısı ile kazma sayısını nasıl ayarlayabilirim sorun şu ki ** bir tanesi Xcode ile ilgili değil ***. –

cevap

7

Hatta tek adımda bunu yapabilirsiniz:

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

Bunu iki adımda yapabilirsiniz.

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

Oh. Benim. Tanrı. Onu 8 saniyede bana bağladın! Ve hatta format dizgisi için aynı değişken adını kullandık! –

+0

Downvoter: ** reason ??? ** Neden birisi buraya geliyor ve geçerli cevapları rasgele indiriyor! Git kendini, anonim katil! *** Bu cevap güzel! *** –

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

Bu hile yapmak gerekir. Biçim dizisi saldırılarına dikkat edin. Bu işin yapılıp yapılmadığını kontrol edin (

)
+0

Vay, bu sefer neredeyse aynı çözümü aldık. :-) – DrummerB

+0

Downvoter: ** sebep ??? ** –

+0

Muhtemelen biri bir liner çözümünü seviyor mu? – nhahtdh

1

. Bunu yalnızca C++ ile test ettim, ancak String Format belgelerinin IEEE printf specification işaret ettiği için, aynı zamanda Objective-C için de çalışması gerektiğine inanıyorum.

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

Çalışıyor. (Cevabınızı "Mesaja" göndermeden önce görmedim.) –