将double转换为int的意外结果

时间:2013-02-11 12:28:34

标签: ios objective-c casting int double

我试图将double值转换为int,我得到了不同的值。

我有这段代码:

double double100times = 240;
int a=[[NSNumber numberWithDouble:double100times] intValue];

我从中得到的值是a=239

如果我使用int a= (int)double100times,我会获得相同的值。

为什么会这样?

更新:如果我使用double double100times = 240;作品, 但我正在使用:

 double double100times = (2.3*100)+10;

1 个答案:

答案 0 :(得分:0)

我试过这段代码

double double100times = 240;
    int a=[[NSNumber numberWithDouble:double100times] intValue];
    NSLog(@"Integer : %d",a);

结果我

  

整数:240

您确定,请再次检查您的日志..

编辑: -

解决方案..

double double100times = ((2.3*100)+10);
    NSLog(@"Value : %f",double100times);
    int a=[[NSNumber numberWithDouble:double100times] intValue];
    int b = [[NSString stringWithFormat:@"%f",double100times] intValue];
    NSLog(@"Integer : %d",a);
    NSLog(@"Integer : %d",b);