printf样式格式化函数内的可变插值

Amp*_*4nd 7 printf objective-c

有没有办法在Objective-C(甚至C)中的printf样式字符串格式化函数中传递浮点精度参数的变量?例如,在TCL和其他脚本语言中,我可以这样做:

set precision 2
puts [format "%${precision}f" 3.14159]
Run Code Online (Sandbox Code Playgroud)

当然,输出将是3.14.我想在Objective-C中做类似的事情:

float precision = 2
NSString *myString = [NSString stringWithFormat:@".2f", 3.14159]
Run Code Online (Sandbox Code Playgroud)

除了我想将精度包含在变量中.如何才能做到这一点?

Jos*_*ell 6

是的,串格式说明printf,其用于由可可进行格式化,包括可变精度说明,*置于小数点后:

int precision = 3;
NSLog(@"%.*f", precision, 3.14159);
NSString *myString = [NSString stringWithFormat:@".*f", precision, 3.14159];
Run Code Online (Sandbox Code Playgroud)