有没有办法在Objective-C(甚至C)中的printf样式字符串格式化函数中为浮点精度参数传递变量?例如,在TCL和其他脚本语言中,我可以这样做:
set precision 2 puts [format "%${precision}f" 3.14159]
当然,输出将是3.14.我想在Objective-C中做类似的事情:
float precision = 2 NSString *myString = [NSString stringWithFormat:@".2f",3.14159]
除了我想将精度包含在变量中.如何才能做到这一点?
解决方法
是的,用于printf的
string format specifiers(由Cocoa用于格式化)包括一个可变精度说明符,*位于小数点后面:
int precision = 3; NSLog(@"%.*f",precision,3.14159); NSString *myString = [NSString stringWithFormat:@".*f",3.14159];