0

我有一个浮点值,它应该有一定数量的小数位。小数位数存储在变量中。

这是代码行:

self.numberTextField.text = [NSString stringWithFormat:@"%.%df",result, [[NSUserDefaults standardUserDefaults] boolForKey:@"decimalPlaces"]];

我的问题是我不知道如何以正确的方式组合 %f 和 %d 说明符。有任何想法吗?

谢谢你的回答!

4

2 回答 2

1

您可以用星号 ( ) 替换字段宽度或精度,*然后它将从参数列表中获取值。

int width = 5;
int precision = 2;
double value = 3.1415926;
NSString* formattedNumber = [NSString stringWithFormat: @"%*.*f", width, precision, value];

http://pubs.opengroup.org/onlinepubs/009695399/functions/printf.html

还可以考虑使用NSNumberFormatter。它具有国际化意识的优势。

于 2013-11-01T17:07:58.820 回答
0

我认为您必须分两个阶段执行此操作

首先创建具有所需小数点数的格式化字符串:

NSString *format = [NSSString stringWithFormat:@"%%.%if", numberOfPlaces];

%% 是一个转义百分比,因此格式中唯一将被替换的部分将是 %i,即 numberOfPlaces = 2 将给出格式 = @"%.2f"

然后您使用该格式字符串来创建最终结果

NSString *valueString = [NSString stringWithFormat:format, myLongFloat];
于 2013-11-01T16:55:37.290 回答