1

在我的计算器应用程序中,我试图在 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"
4

2 回答 2

0

[NSString stringWithFormat:]课程参考中所述:

参数

格式 格式字符串。请参阅“<a href="https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Strings/Articles/FormatStrings.html#//apple_ref/doc/uid/20000943" rel="nofollow" >格式化字符串对象”,了解如何使用此方法的示例,以及“<a href="https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html#/ /apple_ref/doc/uid/TP40004265" rel="nofollow">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"

你需要学会为自己思考。阅读文档!

于 2013-06-08T06:38:23.503 回答
0

这个问题有点老了,但你试过%g吗?这在某些情况下会产生科学记数法:

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

但是,正如它所说,您可以使用精度字段在某种程度上控制它:如果您的数字很大,则需要提高精度以避免科学记数法。如果您的数字很小,那么我认为在使用%g.

我得到这个输出:

    64.0 -> "64"
    64.1 -> "64.1"
    64.15555 -> "64.1556" // default precision is 6
于 2013-06-28T13:20:02.883 回答