5

セグメント化されたコントロールでフロートの桁数を設定しようとしています。

そこで、「0」、「1」、「2」、「3」のセグメント化されたコントロールを作成しました。カンマ以降の桁を変数( )で設定したいself._segmentedControl.selectedSegmentIndex

コンマの後の桁数を次のように決定できることを知っています。

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

誰か助けてくれませんか?

4

4 に答える 4

8

ワンステップでそれを行うこともできます:

sliderValue.text = [NSString stringWithFormat:@"%.*f", numberOfDigits, slider.value];
于 2012-09-19T17:15:35.230 に答える
2

これは 2 つの手順で行うことができます。

NSString *format = [NSString stringWithFormat:@"%%.%df", numberOfDigits);
sliderValue.text = [NSString stringWithFormat:format, slider.value];
于 2012-09-19T17:11:22.647 に答える
2
NSString *format = [NSString stringWithFormat:@"%%.%df", numberOfDecimalPlaces];
sliderValue.text = [NSString stringWithFormat:format, slider.value];

これでうまくいくはずです。フォーマット文字列攻撃に注意してください。

于 2012-09-19T17:11:30.643 に答える
1

これが機能するかどうかを確認します。これは C++ でのみテストしましたが、String FormatのドキュメントはIEEE printf 仕様を指しているため、Objective-C でも機能するはずです。

sliderValue.text = [NSString stringWithFormat: @"%.*f", places, slider.value];
于 2012-09-19T17:14:51.230 に答える