我想编写一个方法,它接受一个给定的float,一个精度,并对其进行格式化,以便显示给定的精确小数位数。
当然,这种方法也可以做其他事情。
现在,我有
[NSString stringWithFormat:@"0%.3f", s]; //s is the float argument
将float的字符串赋予3个小数位。现在,我想让它有n个小数位。实际上,我想要的是:
[NSString stringWithFormat:@"0%.%if", n, s];
//n is the precision argument, s is the float argument
但由于显而易见的原因,它不起作用。
有解决方法吗?
答案 0 :(得分:1)
您可以使用…"%.*f", n, s
。有关详情,请stringWithFormat:
跟随0
。
不确定原始格式字符串中的"%0*.*f", 3 + n, n, s
前缀是什么。您当然不需要它作为格式规范的一部分。如果用于零填充,例如两位数,则应该执行类似{{1}}的操作。
答案 1 :(得分:1)
您可以将星号(*
)作为格式字符串中的精度宽度传递。 *
星号表示宽度将被指定为变量参数中的变量(在要打印的变量之前)。所以
[NSString stringWithFormat:@"0%.*f", n, s];
其中n
是描述宽度的整数,s
是浮点值。