将表示小时的float转换为整数小时和分钟

时间:2011-11-28 14:10:23

标签: objective-c cocoa time

我正在使用距离/速度=到达时间的标准公式。这很好,但答案是一个浮点数,大多数人会觉得将1.75小时的转换为1小时45分钟很不方便。

我想获取最终的浮点数结果并将分钟中的小时分别作为整数提取。

这是我尝试过的:

-(IBAction)calculate:(id)sender {

float spd=[speed.text floatValue];

float dist=[distKnots.text floatValue];

//this give me the answer as a float

float arr=(dist/bs);

//this is how I showed it as an answer

//Here I need to convert "arr" and extract the hours & minutes as whole integers

arrivalTime.text=[NSString stringWithFormat:@"%0.02f", arr];

[speed resignFirstResponder];
}

这是我试图做的转换 - 而且在纸面上它有效,但在代码中它充满了错误:

int justHours = arr*60;

int justMinutes = (arr*60)-(justHours*60);

//then for the user friendly answer:

arrivalTime.text=[NSString stringWithFormat:@"%n hours and %n minutes", justHours, justMinutes];

我是Objective-C的新手,希望有一种方法可以让这个工作或更好的方式解决这个问题。

2 个答案:

答案 0 :(得分:3)

您的arr变量已经以小时计算,因此您不应该对其进行缩放,只需将其舍入:

int justHours = (int)arr;

然后你的分钟是原始小时和舍入小时(即小数部分)之间(整数)差异的60倍。

int justMinutes = (int)((arr - justHours) * 60);

答案 1 :(得分:0)

int justHours = arr/60;似乎不正确,应为int justHours = arr;