自定义浮动小数点

时间:2011-07-11 13:08:23

标签: iphone objective-c ios

label.text = [NSString stringWithFormat:@"%.2f",final];

以上语句显示变量“final”中可用的浮点值,小数点后两位数。

我想显示小数位数,具体取决于我给像这样的整数变量的数字

label.text = [NSString stringWithFormat:@"%.if",j,final]

这里j是整数变量。无论我为j取得多少小数,它应该显示。我需要正确的语法来显示上述语句。

4 个答案:

答案 0 :(得分:4)

IEEE printf spec表示的Apple follows

  

字段宽度或精度或两者都可以用星号表示   ('*')。在这种情况下,int类型的参数提供字段宽度   或精确。

这意味着

label.text = [NSString stringWithFormat:@"%.*f",j,final]

可能会有效,但我现在没有可用于测试它的平台。

答案 1 :(得分:2)

NSNumberFormatter能够做你想做的事。在格式化字符串之前,可以使用变量设置以下任何方法。

- (void)setMinimumIntegerDigits:(NSUInteger)number
- (void)setMinimumFractionDigits:(NSUInteger)number
- (void)setMaximumIntegerDigits:(NSUInteger)number
- (void)setMaximumFractionDigits:(NSUInteger)number

Data Formatting Guide - Number Formatters

答案 2 :(得分:0)

我不知道是否有一个可以做你想做的单行班,但你可以随时做:

NSString* formatString = [NSString stringWithFormat: @"%%.%if", j];
label.text = [NSString stringWithFormat:formatString, final];

答案 3 :(得分:0)

您可以使用 NSNumberFormatter

 NSNumberFormatter *nf = [[NSNumberFormatter alloc] init];
[nf setFormatterBehavior:NSNumberFormatterBehaviorDefault];
[nf setNumberStyle:NSNumberFormatterDecimalStyle];
[nf setMaximumFractionDigits:j]; // Set the number of decimal places here

label.text = [nf stringFromNumber:[NSNumber numberWithFloat:final]];

[nf release];