Objective c 如何定义变量字符串格式说明符
我有这行代码Objective c 如何定义变量字符串格式说明符,objective-c,format-specifiers,Objective C,Format Specifiers,我有这行代码 // valueX is a long double (long double is a huge floating point) NSString *value = [NSString stringWithFormat: @"%.10Lg", valueX]; 此格式说明符最多指定10个十进制数字,但我不想将其硬编码为10 我有一个变量numberOfDigits,我想用它来定义位数。对于那些渴望否决这个问题的人来说,这并不像看上去那么容易。我不能用%@替换10,因为%.10L
// valueX is a long double (long double is a huge floating point)
NSString *value = [NSString stringWithFormat: @"%.10Lg", valueX];
此格式说明符最多指定10个十进制数字,但我不想将其硬编码为10
我有一个变量numberOfDigits
,我想用它来定义位数。对于那些渴望否决这个问题的人来说,这并不像看上去那么容易。我不能用%@
替换10
,因为%.10Lg
本身就是一个格式说明符
好的,我可以创建一组字符串,比如
@“%.5Lg”
,@“%.8Lg”
,@“%.9Lg”
。。。然后切换,但我想知道是否还有其他方法…如果您阅读了格式说明符的手册页面。您可以将精度替换为*
,这意味着它将取而代之的是参数
int numDigits = 10;
NSString *value = [NSString stringWithFormat:@"%.*Lg", numDigits, valueX];
我在核心基础参考文献中找不到这一点,但我知道这是写在<代码> 3版的Prtff
,如果您阅读手册页的格式说明符。您可以将精度替换为
*
,这意味着它将取而代之的是参数
int numDigits = 10;
NSString *value = [NSString stringWithFormat:@"%.*Lg", numDigits, valueX];
我在核心基础参考文献中找不到这一点,但我知道这是写在<代码> 3版Prtuf男性页面。 < P>迪特里希的答案是最简单的,因此最好。请注意,即使没有内置的方法来指定参数的位数,您也可以先生成格式字符串,然后使用它:
- (NSString *) stringFromValue: (long double) value digits: (int) digits; {
//First create a format string. Use "%%" to escape the % escape char.
NSString *formatString =[NSString stringWithFormat: @"%%.%dLg", digits];
return [NSString stringWithFormat: formatString, value];
}
迪特里希的答案是最简单的,因此也是最好的。请注意,即使没有内置的方法来指定参数的位数,您也可以先生成格式字符串,然后使用它:
- (NSString *) stringFromValue: (long double) value digits: (int) digits; {
//First create a format string. Use "%%" to escape the % escape char.
NSString *formatString =[NSString stringWithFormat: @"%%.%dLg", digits];
return [NSString stringWithFormat: formatString, value];
}
明亮的这就是为什么你们有127K分,而我却在努力争取14K分,我已经这么做了很长时间了,仅此而已。谢谢迪特里希。我试图(但失败)记住格式说明符中数字变量的语法,而你救了我,帮我翻了一本K&R C的书。太棒了!!!!!!这就是为什么你们有127K分,而我却在努力争取14K分,我已经这么做了很长时间了,仅此而已。谢谢迪特里希。我试图(但失败)记住格式说明符中数字变量的语法,而你救了我,帮我翻了一本K&R C的书。我忘了这一点。(编辑)我忘了那一点。(编辑)