ESP8266 连阿里云浮点数显示异常的原因,麻烦指教
硬件:ESP8266模块软件:ESP8266_RTOS_SDK V3.1,使用SHT20读取温度,MQTT发送到阿里云服务器。float数据显示小数点后面位数特别多,有什么方式。
我试过*100后取整,再除100,还是这样。有什么方法可以解决,谢谢大家 你这头是无法解决的。 这是浮点数的问题,切确说是浮点数的精度不够。 精度不够,有些数是无法表达的。
可以换双精度double 试试 四舍五入到你要的小数位数, 剩下的变为0. 最好用128位。 mPiDDR 发表于 2019-5-16 18:17
你这头是无法解决的。 这是浮点数的问题,切确说是浮点数的精度不够。 精度不够,有些数是无法表达的。
可 ...
double我也试过,现象一样。没招了 找一找有没有格式化显示数值 jackman 发表于 2019-5-16 18:40
四舍五入到你要的小数位数, 剩下的变为0.
4舍5入小数位数是怎么弄的,行, 我先搞一下试试 难道不是直接发字符串上去的吗 yyts 发表于 2019-5-16 19:45
难道不是直接发字符串上去的吗
是了字符串,用json打包 格式化字符串,可以选择保留几位小数 %.2f保留2位小数 ,用 sprintf 這不是 float 型數據自身問題,而是 APP 顯示沒處理好的問題。 xjjiang 发表于 2019-5-16 19:54
是了字符串,用json打包
那你字符串本身是什么值呢? 很明显是自身打json包的问题。比较一下你自己发出来的json包是什么样的 javascript显示浮点的问题,一般需要在平台处理。 显示要格式化 变格式,我一直显示浮点没问题
页:
[1]