使用%g更改字符串格式的有效位数

时间:2013-07-07 21:19:49

标签: ios objective-c

我正在构建一个允许用户执行某些计算的应用程序,但计算结果会产生大量小数位数。我可以看到这种精确度,但我想让用户能够选择他们想要显示的有效位数。我正在使用double创建一个结果字符串,并使用此处显示的%g格式:

NSString *resultString = [[NSString alloc] initWithFormat:@"%.14g", result];

我创建了一个步进器,用户可以与另一个双人交互并存储他们选择的号码。我的问题是,如何在14更改有效位数的位置插入双精度数?或者这甚至可能吗?如果您需要澄清,请发表评论。

1 个答案:

答案 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