我正在构建一个允许用户执行某些计算的应用程序,但计算结果会产生大量小数位数。我可以看到这种精确度,但我想让用户能够选择他们想要显示的有效位数。我正在使用double创建一个结果字符串,并使用此处显示的%g格式:
NSString *resultString = [[NSString alloc] initWithFormat:@"%.14g", result];
我创建了一个步进器,用户可以与另一个双人交互并存储他们选择的号码。我的问题是,如何在14
更改有效位数的位置插入双精度数?或者这甚至可能吗?如果您需要澄清,请发表评论。
答案 0 :(得分:3)
格式中的任何字段宽度或精度都可以用*
替换,以指示由int
参数提供的动态值。
例如:
double d = 1.0/7;
for(int i = 4; i < 12; i++)
NSLog(@"%.*g", i, d);
输出:
0.1429
0.14286
0.142857
0.1428571
0.14285714
0.142857143
0.1428571429
0.14285714286