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

您可以分两步执行此操作。

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++ 对此进行了测试,但由于字符串格式的文档指向IEEE printf 规范,我相信它也应该适用于 Objective-C。

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