在整数上执行数学运算的Objective-C问题

在整数上执行数学运算的Objective-C问题,objective-c,floating-point,integer,Objective C,Floating Point,Integer,我有一行在计时器上运行的代码: NSLog( @" seconds: %i, elapsedhours %f", [self elapsedSeconds], [self elapsedSeconds] / 3600); 它打印出: seconds: 0, elapsedhours 0.000000 seconds: 1, elapsedhours 0.000000 seconds: 2, elapsedhours 0.000000 seconds: 3, elapsedhours 0.000

我有一行在计时器上运行的代码:

NSLog( @" seconds: %i, elapsedhours %f", [self elapsedSeconds], [self elapsedSeconds] / 3600);
它打印出:

seconds: 0, elapsedhours 0.000000
seconds: 1, elapsedhours 0.000000
seconds: 2, elapsedhours 0.000000
seconds: 3, elapsedhours 0.000000
我想知道为什么运行时间没有更新

elapsedSeconds的方法:

- (NSUInteger)elapsedSeconds;
{
    NSUInteger seconds = 0;
    if( ![self endDate] ) {
        seconds = [[NSDate date] timeIntervalSinceDate: [self startDate]];
        NSLog( @" startdate = %@ no end date %i", startDate, seconds );
    }
    else {
        seconds = [[self endDate] timeIntervalSinceDate: [self startDate]];
    }

    return seconds;
}
你们还有什么需要看的吗

TIA

因为您正在使用,它不计算小数部分,尽管您随后将其打印为浮点

如果要查看部分结果,应将其除以
3600.0

因为您使用的是,它不计算小数部分,尽管您随后将其打印为浮点


如果要查看部分结果,应将其除以
3600.0

整数除以整数就是整数

所以
1/3600
就是
0

整数除以其他数就是其他数


所以
1/3600.0
0.000277777
一个整数除以一个整数就是一个整数

所以
1/3600
就是
0

整数除以其他数就是其他数


所以
1/3600.0
就是
0.00027777777

谢谢大家,就是这样!我来自PHP的国度,所有这些东西都是神奇地完成的。很难理解这些事情。谢谢你们,就是这样!我来自PHP的国度,所有这些东西都是神奇地完成的。我很难理解这些事情。