7
#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    // insert code here...
    NSLog(@"Hello, World!");
    float a = 12.3454323;
    NSLog(@"%d", a);
    NSLog(@"%g", a);
    [pool drain];
    return 0;
}

嗨,我做了一个非常简单的程序来解释我的问题:这个程序的输出是:

第一行:一些随机数(394883904,或 89374e-15 或 ...)第二行:12.3454323

所以..我的问题:什么是@"%d",什么是@"%g").. 因为,IF a 是 INTEGER (int a = 156)

然后 @"%d" 给出 156 但 @"%g" 给出 8.32059e-315 或类似的:)

我正在对这些值进行蓝牙传输,但这是我发送整数位置然后显示它的问题,它正在工作,但我必须检查什么是什么,所以,有什么关于 @"% 的教训d" 和类似的工作人员?何时使用@"%d" 和何时使用@"%g".. 还有其他@"%something" 吗?谢谢你

编辑:当然,零线是hello world!:)

4

1 回答 1

14

%d打印出一个整数,%g打印出一个浮点数或双精度数。如果你给 %da float 或 double,或 %g 一个整数,你会得到不正确的结果,这些结果可能或多或少等同于你得到的*(int *)&floatVaror *(double *)&intVar

字符串格式说明符的完整列表在文档中。

于 2011-03-08T18:55:05.057 回答