我正在使用距离/速度=到达时间的标准公式。这很好,但答案是一个浮点数,大多数人会觉得将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的新手,希望有一种方法可以让这个工作或更好的方式解决这个问题。
答案 0 :(得分:3)
您的arr
变量已经以小时计算,因此您不应该对其进行缩放,只需将其舍入:
int justHours = (int)arr;
然后你的分钟是原始小时和舍入小时(即小数部分)之间(整数)差异的60倍。
int justMinutes = (int)((arr - justHours) * 60);
答案 1 :(得分:0)
int justHours = arr/60;
似乎不正确,应为int justHours = arr;
。