xcode中的双重问题或我做错了什么

Tri*_*ris 0 iphone variables double xcode objective-c

我猜这是最简单的事情,但这让我很困惑.我敢肯定我以前成功使用过双打,但现在我遇到了麻烦.

我刚刚做了一个新的'测试'项目,看看我是否可以使它工作,但我想要做的就是设置一个双倍值.

所以在View Controller的viewDidLoad我输入了:

double z = 2938.09;
NSLog(@"z = %d", z);
Run Code Online (Sandbox Code Playgroud)

我希望它输出'z = 2938.09',但我得到'z = 343597384'

double z = 3.4返回z = 858993459

此外,大多数整数值报告为z = 0,但并非总是如此(有时会发出如上所示的另一个奇怪数字)

我在这里遗漏了什么,或者有什么奇怪的事情发生?

甚至尝过类似的东西

NSString *newString = [[NSString alloc] initWithString:@"3.4"];
double z = [newString.text doubleValue];
NSLog(@"z = %d", z);
[newString release];
Run Code Online (Sandbox Code Playgroud)

但仍然得到疯狂的z = 858993459 :(

War*_*ior 6

要打印Double值,请使用%f而不是%d.

NSlog格式说明符

%@对象

%d,%i签署了int

%u unsigned

%f float/double

%x,%X十六进制int

%八进制

%zu size_t

%p指针

%e float/double(科学计数法)

%g float/double(以%f或%e为单位,具体取决于值)

%s C字符串(字节)

%SC字符串(unichar)

%.*s Pascal字符串(需要两个参数,第一个传递pstr [0],第二个传递pstr + 1)

%c字符

%C unichar

%lld长

%llu unsigned long long

%Lf长双