自定义浮点小数点


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

上面的语句显示变量"final"中可用的浮点数,小数点后加两位数字。

我想根据我给一个整数变量的数字显示小数的数量,就像这样

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

这里j是整型变量。不管我为j取了多少小数,它都应该显示出来。我需要正确的语法来显示上面的语句。

苹果公司遵循的IEEE printf规范规定:

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

这意味着

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

可能可以工作,但是我现在没有可用的平台来测试它

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

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

数据格式指南-数字格式

我不知道是否有一行代码可以完成你想要的,但你总是可以这样做:

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

可以使用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];

最新更新