我有一个计算,这是行不通的,我不知道为什么!计算不能按预期工作..任何想法? (iphone/int)
int numHoursInWeek;
int numDays;
int averageSalary;
int total_seconds_in_year = ((numHoursInWeek * 60 * 60) * numDays);
NSLog(@"average sal in pence=%i", (averageSalary * 100));
NSLog(@"num seconds in year=%i", total_seconds_in_year);
NSLog(@"cost per second=%i", ((averageSalary * 100)/total_seconds_in_year));
int cost_per_person_per_second = ((averageSalary*100)/total_seconds_in_year);
costPerSecond = (cost_per_person_per_second * numPeople);
lblCostPerPerson.text = [NSString stringWithFormat:@"%.2f",cost_per_person_per_second];
以上回报的NSLog
average sal in pence=3400000
num seconds in year=31968000
cost per second=-1.991753
下面我知道其他一切都被设置正确(NUMDAYS,averageSalary为例)。 当我手动进行计算时,得到0.1063。这应该显示在我的标签上? (每人每秒费用)。
有什么想法?我应该使用浮动而不是整数变量?
+1:关于整数与浮点操作的误解是许多程序中错误的主要原因 - 尤其是因为它们通常可以在某些条件和输入下进行诊断和工作,而在其他情况下通常很细微。所有的开发人员都应该熟悉算术运算如何在他们使用的语言中工作。它可以节省很多的痛苦。 – LBushkin 2009-12-24 15:37:04
谢谢你们 - 我会改变他们并按照指示使用。确认后会回复! – 2009-12-24 15:40:04