📜  将双精度附加到字符串 c++ (1)

📅  最后修改于: 2023-12-03 15:39:15.691000             🧑  作者: Mango

将双精度附加到字符串

在C++中,我们可以使用字符串来表示文本数据。有时我们需要将数字数据附加到字符串中。本文将介绍如何在C++中将双精度浮点数附加到字符串。

使用ostringstream类

C++中有一个ostringstream类,它可以将数字数据转换为字符串。我们可以使用它来将双精度浮点数附加到字符串。

#include <iostream>
#include <sstream>
#include <string>

using namespace std;

int main() {
    double num = 3.1415926;
    ostringstream oss;
    oss << num;
    string str = oss.str();
    cout << "str: " << str << endl; // 输出:str: 3.14159
    return 0;
}

在上面的代码中,我们首先创建一个双精度浮点数num,然后创建了一个ostringstream对象oss。接下来,我们使用oss << num将num添加到ostringstream中。最后,我们使用oss.str()获取字符串表示形式,并将其存储在str变量中。

使用sprintf函数

除了ostringstream类,我们还可以使用sprintf函数将双精度浮点数附加到字符串中。

#include <iostream>
#include <cstdio>
#include <string>

using namespace std;

int main() {
    double num = 3.1415926;
    char buffer[100];
    sprintf(buffer, "%.2lf", num);
    string str = buffer;
    cout << "str: " << str << endl; // 输出:str: 3.14
    return 0;
}

在上面的代码中,我们首先创建一个双精度浮点数num,然后创建了一个字符数组buffer。接下来,我们使用sprintf函数将num格式化成字符串,此处使用了保留小数点后两位,并将生成的字符串放入buffer中。最后,我们将buffer转换为string类型并存储在str变量中。

总结

本文介绍了两种方法可以将双精度浮点数附加到字符串中。使用ostringstream类是一个常用的方法,可以将多个数字附加到字符串中。而使用sprintf函数适合在C++程序中使用,因为它类似于C语言中的printf函数。