3

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

我的实现如下:

#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);

出现以下错误:

error: no matching function for call to 'USBSerial::println(std::string&)'

编辑:链接到有关 Serial.print 的粒子文档

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

4

1 回答 1

0

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

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

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

于 2016-10-16T05:22:07.477 回答