0

我试图将一个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;
4

1 回答 1

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);
于 2013-02-11T12:35:09.083 回答