NSLog(@"%d",a)NSLog(@"%g",a); @"%d"与@"%g"之间的差异

vog*_*gue 7 objective-c-2.0

#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;
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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

编辑:当然,零线是你好世界!:)

Ano*_*mie 14

%d打印出一个整数,%g打印出一个浮点数或双精度数.如果你给DA%float或double,或%g的整数,你会得到不正确的结果,可能会或可能不会或多或少相当于你会用得到什么*(int *)&floatVar*(double *)&intVar.

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

  • @ChaseWalden:你错了.检查答案中链接的文档. (4认同)