问题描述
我使用 TinkerCad 作为 Arduino UNO R3 模拟器。我的目标是将 int 转换为字符串,但以下代码打印 188 而不是 180。
void setup()
{
Serial.begin(115200);
}
void loop()
{
Serial.println(String(180));
}
输出为 188
,如您在上面 TinkerCad 串行监视器的屏幕截图中所见。为什么 String
会出现奇怪的问题?
解决方法
这真的很奇怪。试试这个:
int intValue = 180;
string stringValue;
void setup()
{
Serial.begin(9600);
}
void loop()
{
stringValue = String(intValue);
Serial.println(stringValue);
}
,
似乎是一个 tinkercad 问题。你奇怪的草图在真正的 Arduino 上运行良好。
,与 tinkercad 有同样的问题。String (intval) or (String) intval was not working.
Kludge:如果可能,使用 lcd.write(int);
代替(即尽可能使用 int 并直接发送 int 进行写入)。