Arduino 字符串不能正确地将整数转换为字符串

问题描述

我使用 TinkerCad 作为 Arduino UNO R3 模拟器。我的目标是将 int 转换为字符串,但以下代码打印 188 而不是 180。

void setup()
{
  Serial.begin(115200);
}


void loop()
{
  Serial.println(String(180));
}

Serial monitor output

输出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 进行写入)。