Arduino温度转换问题

时间:2016-02-17 10:17:11

标签: arduino

我的代码不会将摄氏度转换为华氏度。代码片段如下。我找不到我的错误。我的代码在输出136.4时输出90.

  float c= 58;
  float temp= (((9 / 5) * c + 32));
  Serial.println(temp);    

2 个答案:

答案 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°。