保存带有超过2个十进制数字的浮点数

时间:2019-09-21 09:52:37

标签: arduino

我正在将GPS NEO 6m与esp8266(NODEMCU)结合使用,并将数据上传到Firebase 使用 “ Serial.print(gps.location.lat(),6);”显示“纬度= 34.200271” 但是如何将纬度保存为具有6个小数位数的本地变量? 使用“ float latitude =(gps.location.lat());仅保存34.20”

和“ float latitude =(gps.location.lat(),6);仅保存6” 谢谢

3 个答案:

答案 0 :(得分:0)

在纬度中存储纬度应该可以正常工作。但是这行代码是错误的:

float latitude=(gps.location.lat(),6); 

您正在做的就是将以下操作的结果分配:(gps.location.lat(), 6)到浮点数。括号运算符肯定是奇怪的。它将按照给定的顺序执行括号中所有用逗号分隔的操作,但返回LAST操作的结果。在这种情况下,它是6

将代码行更改为:

float latitude = gps.location.lat();

应该解决您的问题。

答案 1 :(得分:0)

感谢您的回复,我使用以下方法将7位小数的​​浮点数上传到Firebase:

  char latitude[10]; 
  sprintf(latitude, "%.7f", gps.location.lat());
  Firebase.setString ("Latitude",latitude);

  delay(1000);

答案 2 :(得分:0)

<块引用>

使用“ float latitude=(gps.location.lat()); 只保存34.20“

我认为它将所有可用的小数点保存到 latitude

打印/输出时使用

Serial.println(latitude,6);