我有一个浮点值,它应该有一定数量的小数位。小数位数存储在变量中。
以下是代码行:
self.numberTextField.text = [NSString stringWithFormat:@"%.%df",result, [[NSUserDefaults standardUserDefaults] boolForKey:@"decimalPlaces"]];
我的问题是我不知道如何以正确的方式组合%f和%d说明符。 有什么想法吗?
感谢您的回答!
答案 0 :(得分:1)
您可以用星号(*
)替换字段宽度或精度,然后它将从参数列表中选取值。
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。它具有了解国际化的优势。
答案 1 :(得分:0)
我认为你必须分两个阶段完成这个工作
首先创建具有所需小数点数的格式化字符串:
NSString *format = [NSSString stringWithFormat:@"%%.%if", numberOfPlaces];
%%是一个转义百分比,因此格式中唯一替换的部分是%i,即numberOfPlaces = 2将给出格式= @“%。2f”
然后使用该格式字符串创建最终结果
NSString *valueString = [NSString stringWithFormat:format, myLongFloat];