C ++浮点到字符串转换失败,带有stringstream

时间:2016-10-13 07:54:21

标签: c++ string arduino floating-point particle.io

我正在研究particle.io Spark平台,目前卡在试图将字符串打印出来。我看到了一些使用字符串流转换浮点数的解决方案。

我的实施如下:

1995-12-31 20:30

这导致以下输出:

#include <sstream>

void loop()
{
    float tempC = 21.35;

    std::ostringstream stream;
    stream << tempC;
    std::string tempCString = stream.str();

    // why does this give me a blank string?
    Serial.print("Temp 1: ");
    Serial.println(tempCString.c_str());

    // while this outputs the float
    Serial.print("Temp 2: ");
    Serial.println(tempC);

    Serial.println(tempCString.size());
}

此外,这无法编译:

Temp 1:
Temp 2: 21.35
6

出现以下错误:

Serial.println(tempCString);

编辑:指向有关Serial.print

的粒子文档的链接

https://docs.particle.io/reference/firmware/core/#print-

1 个答案:

答案 0 :(得分:0)

我找到了答案。不确定这对于常规c ++是否适用,但对于在粒子spark上运行的c ++版本,解决方案如下:

float myFloat = 6.123;
String floatString(myFloat, 2);

这给了我一个我可以使用的字符串!