我有一个简单的函数,它返回一个浮点数,如下所示。
float offset (int secs){
return secs/3600;
}
给定 secs = 19800,如果我在下面使用它,我最终会得到 5 而不是 5.5。
num01.text=[NSString stringWithFormat:@"%.1f",offset(t01)]; // t01 is 19800
我做错了什么? 我该怎么做才能将 num01(标签)的字符串值设置为 5.5?
谢谢你的帮助。
返回值在解析为浮点数之前是一个 int。
只需将其中一个操作数转换为浮点数或使用 3600.0:
return secs/3600.0
问题是您的代码获取整数除法的结果并将其转换为浮点数。 所以,它是这样的:
"计算将以秒为单位存储的整数除以整数 3600 的结果的商。 将其转换为浮点数并返回结果。 即 19,800/3600 = 5。 转换为 5.0 并返回。
相反,从一开始就使用浮点数,方法是更改函数以接受浮点数或先将数字转换(转换)为浮点数:
return (float)sec / 3600.0;