我有一个浮点值,它应该有一定数量的小数位。小数位数存储在变量中。
这是代码行:
self.numberTextField.text = [NSString stringWithFormat:@"%.%df",result, [[NSUserDefaults standardUserDefaults] boolForKey:@"decimalPlaces"]];
我的问题是我不知道如何以正确的方式组合 %f 和 %d 说明符。有任何想法吗?
谢谢你的回答!
我有一个浮点值,它应该有一定数量的小数位。小数位数存储在变量中。
这是代码行:
self.numberTextField.text = [NSString stringWithFormat:@"%.%df",result, [[NSUserDefaults standardUserDefaults] boolForKey:@"decimalPlaces"]];
我的问题是我不知道如何以正确的方式组合 %f 和 %d 说明符。有任何想法吗?
谢谢你的回答!
您可以用星号 ( ) 替换字段宽度或精度,*
然后它将从参数列表中获取值。
int width = 5;
int precision = 2;
double value = 3.1415926;
NSString* formattedNumber = [NSString stringWithFormat: @"%*.*f", width, precision, value];
http://pubs.opengroup.org/onlinepubs/009695399/functions/printf.html
还可以考虑使用NSNumberFormatter。它具有国际化意识的优势。
我认为您必须分两个阶段执行此操作
首先创建具有所需小数点数的格式化字符串:
NSString *format = [NSSString stringWithFormat:@"%%.%if", numberOfPlaces];
%% 是一个转义百分比,因此格式中唯一将被替换的部分将是 %i,即 numberOfPlaces = 2 将给出格式 = @"%.2f"
然后您使用该格式字符串来创建最终结果
NSString *valueString = [NSString stringWithFormat:format, myLongFloat];