在我的计算器应用程序中,我试图在UILabel中显示“double”值。但是,该值始终具有比所需更多的零。例如,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"
答案 0 :(得分:0)
如[NSString stringWithFormat:]
类引用中所述:
<强>参数强>
格式化格式字符串。请参阅“Formatting String Objects” 如何使用此方法的示例,以及“String Format Specifiers” 格式说明符列表。该值不得为零。
并且在第一个链接之后,第一个示例之一是:
NSString *string1 = [NSString stringWithFormat:@"A string: %@, a float: %1.2f",
@"string", 31415.9265]; // ^
// string1 is "A string: string, a float: 31415.93"
你需要学会自己思考。阅读文档!
答案 1 :(得分:0)
这个问题有点老了,但你试过%g
吗?在某些情况下,这将产生科学记数法:
64位浮点数(double),如果指数小于-4或大于或等于精度,则以%e的样式打印,否则为%f的样式。
但是,正如它所说,你可以使用精度字段在某种程度上控制它:如果你的数字很大,你需要提高精度以避免科学记数法。如果你的数字很小,那么我认为在使用%g
时你无能为力。
我得到了这个输出:
64.0 -> "64"
64.1 -> "64.1"
64.15555 -> "64.1556" // default precision is 6