我的代码不会将摄氏度转换为华氏度。代码片段如下。我找不到我的错误。我的代码在输出136.4时输出90.
float c= 58;
float temp= (((9 / 5) * c + 32));
Serial.println(temp);
答案 0 :(得分:2)
由于截断,你因整数除法而犯规,9 / 5
等于1
。改变这一行:
float temp= (((9 / 5) * c + 32));
为:
float temp= (((9.0 / 5.0) * c + 32.0));
答案 1 :(得分:2)
在arduino上使用浮点运算成本很高。与大多数PC /智能手机等相反,arduino处理器没有原生浮点支持。您可能希望使用整数算术。
作为一般规则,为避免不必要的舍入,您应首先进行所有乘法,然后才进行除法。当然,除非积累的产品溢出。
这将是:
int temp = (c*9)/5 + 32;
如果你真的需要精确度,你可以将温度保存在1/100°。