我正在使用此库将浮点数转换为字符串:http://www.arduino.cc/playground/Main/FloatToString?action=sourceblock&ref=1。
这是代码段,其中打印出来的flt看起来像“29.37”:
float flt = tempSensor.getTemperature();
char buffer[25];
char str[20];
Serial.print(floatToString(str, flt, 2, 10));
这应该是开箱即用的,但是不能-我做了什么?这些是我的编译错误:
.../floatToString.h:11:错误:“,” token 之前的预期主表达式
.../floatToString.h:在函数'char * floatToString(char *,float,int,int,bool)'中:
.../floatToString.h:11:错误:'char * floatToString(char *,float,int,int,bool)'参数5缺少默认参数
.../floatToString.h:73:错误:在此范围内未声明“itoa”
.../floatToString.h:89:错误:在此范围内未声明“itoa”
最佳答案
在C++中,仅允许所有最后一个参数具有默认值:
BAD rightjustify必须具有默认值:
char * floatToString(char * outstr, float value, int places,
int minwidth=0, bool rightjustify) {
确定:没有默认值,最后一个或两个最后一个参数具有默认值
char * floatToString(char * outstr, float value, int places,
int minwidth, bool rightjustify) {
char * floatToString(char * outstr, float value, int places,
int minwidth, bool rightjustify=false) {
char * floatToString(char * outstr, float value, int places,
int minwidth=0, bool rightjustify=false) {
检查标题,我想您链接的不是您当前使用的那个。
还有一个指向问题的指针:ito对编译器未知。它应该在
cstdlib
中,因此缺少#include <cstdlib>
,我将其放在 header 中,因为它取决于它。关于c++ - float 到Arduino编译错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3198031/