Objective c++ 显示双精度,小数点后带不必要的零

Objective c++ 显示双精度,小数点后带不必要的零,objective-c++,Objective C++,在我的计算器应用程序中,我试图在UILabel中显示一个“双精度”值。但是,该值的零数始终多于所需的零数。例如,64显示为64.000000,4.23显示为4.230000,等等 如何使其显示尽可能多的小数位数 vector<Token> postfix; // create empty postfix vector infixToPostfix(infix, postfix); // call inToPost to fill up postfix vector from in

在我的计算器应用程序中,我试图在UILabel中显示一个“双精度”值。但是,该值的零数始终多于所需的零数。例如,64显示为64.000000,4.23显示为4.230000,等等

如何使其显示尽可能多的小数位数

vector<Token> postfix;  // create empty postfix vector
infixToPostfix(infix, postfix);  // call inToPost to fill up postfix vector from infix vector
answer = postFixEvaluate(postfix); // evaluate expression

expString.clear();
expNSString = [NSString stringWithFormat:@"%f", answer]; // convert "answer" to NSString
displayScreen.text = expNSString; // display answer in UIlabel "displayScreen"
向量后缀;//创建空后缀向量
中缀后缀(中缀,后缀);//调用inToPost从中缀向量填充后缀向量
答案=后缀评估(后缀);//求值表达式
expString.clear();
expNSString=[nsstringwithformat:@“%f”,answer];//将“应答”转换为NSString
displayScreen.text=expNSString;//在UIlabel“displayScreen”中显示答案
如课程参考中所述:

参数

格式化格式字符串。有关详细信息,请参见“” 如何使用此方法的示例,以及 格式说明符的列表。此值不能为零

在第一个链接之后,第一个示例之一是:

NSString *string1 = [NSString stringWithFormat:@"A string: %@, a float: %1.2f",
                                               @"string", 31415.9265]; //  ^
// string1 is "A string: string, a float: 31415.93"

你需要学会独立思考。阅读文档

这个问题有点老了,但您是否尝试过
%g
?在某些情况下,这将产生科学符号:

64位浮点数字(双精度),如果指数小于–4或大于或等于精度,则以%e的样式打印,否则以%f的样式打印

但是,正如上面所说,您可以使用精度字段在某种程度上控制这一点:如果您的数字很大,则需要提高精度以避免使用科学符号。如果您的数字很小,那么我认为在使用
%g
时您对此无能为力

我得到这个输出:

    64.0 -> "64"
    64.1 -> "64.1"
    64.15555 -> "64.1556" // default precision is 6

问题是,我不希望像%1.2f那样始终只有两位小数。我希望它根据小数点后的“实”位数而有所不同。