【发布时间】:2015-11-26 04:47:38
【问题描述】:
我一直在使用 Arduino 的 Serial.println() 打印字符串和数字的组合,例如:
Serial.println(((String)"some value: " + some_value);
这似乎适用于大多数类型,但对于浮点数失败,这给了我编译错误:
“operator+”的模糊重载(操作数类型为“String”和“float”)
我尝试过不同的调用,例如:
Serial.println(((String)"some float:" + ((String)some_float));
Serial.println(((String)"some float: " + String(some_float));
Serial.println(((String)"some float: " + String(some_float, 2));
但他们给出了类似的错误。 Arduino 在String 上的文档似乎暗示这些应该有效。我做错了什么?
更新
纠正我原来的错误后,我现在遇到了这个问题:
Serial.println(String("some value: ") + String(some_value));
>> call of overloaded ‘String(float&)’ is ambiguous
我也试过了:
Serial.println(String("some float: ") + String(some_float, 2));
>> call of overloaded ‘String(float&, int)’ is ambiguous
【问题讨论】:
-
不建议编辑问题以适应回复,否则稍后阅读问题的人(如我)将不知道为什么有人回答它。只需留下原始问题,然后添加一个 EDIT 字符串并进行修改,解释您修改的原因以及为什么它不起作用(例如“我第一次复制错误,但这是我使用的代码,它有相同的错误")
-
@frarugi,我同意。但是,我的问题出现了令人困惑的错误,并且提供的解决方案是错误的。
-
是的,但现在它更具可读性,因此答案可以更精确
-
我发布了一个答案。也许还有其他问题,因为我发布的代码有效
标签: c++ string casting arduino