long long Number div错误

时间:2012-08-07 15:35:52

标签: ios html converter

long long d = 1000*3600*24*365;
NSLog(@"d:%lld",d);

NSLog(@"year:%d",d/(1000*3600*24*365));

d = 100*1000*3600*24*365;
NSLog(@"year:%d",d/(1000*3600*24*365));

结果:

usworldpro[1106:c203] year:1

usworldpro[1106:c203] year:0

为什么会这样? 我认为这可能是一种类型转换问题,但我无法清楚地找到原因。谁能为我解释一下?

1 个答案:

答案 0 :(得分:2)

原因是你的文字是整数(int),而不是长整数,所以每个中间结果都是。 尝试:

     long long d = 1000ll*3600ll*24ll*365ll;
     NSLog(@"d:%lld",d);

     NSLog(@"year:%d",d/(1000ll*3600ll*24ll*365ll));

     d = 100ll*1000ll*3600ll*24ll*365ll;
     NSLog(@"year:%d",d/(1000ll*3600ll*24ll*365ll));

但是,告诉NSLogprintf等格式错误总是一个坏主意。