C++程序 双精度转字符串
在此,我们将使用各种方法(即)构建C++程序,将双精度转换为字符串。
- 使用 to_string
- 使用 stringstream
- 使用 sprintf
- 使用 lexical_cast
我们将在所有提到的方法中保持相同的输入,并相应地获取输出。
输入:
n = 456321.7651234
输出:
字符串:456321.7651234
1. 使用“to_string”
在C++中,使用 std::to string 将double转换为字符串。所需参数是double值,返回包含double值的字符串对象作为字符序列。
// C++程序演示Double to
// String使用to_string转换
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
double n = 456321.7651234;
string str = to_string(n);
cout << "字符串是:" << str;
return 0;
}
输出
字符串是:456321.765123
2. 使用字符串流
双精度也可以使用不同的方式在C++中转换为字符串,具体取决于我们的要求,使用 ostringstream。
// C++程序演示Double to
// String使用字符串流转换
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
ostringstream s;
double n = 2332.43;
s << n;
string str = s.str();
cout << "字符串是:" << str;
return 0;
}
输出
字符串是:2332.43
3. 使用sprintf
通过在sprintf中指定精度,我们可以自定义精度将double转换为字符串或字符数组。我们可以同时使用 sprintf 添加所需的额外文本(),和字符串。
// C++程序演示Double to
// String使用sprintf转换
#include <cstring>
#include <iostream>
#include <string>
#define Max_Digits 10
using namespace std;
int main()
{
double N = 1243.3456;
char str[Max_Digits + sizeof(char)];
std::sprintf(str, "%f", N);
std::printf("字符串是:%s \n", str);
return 0;
}
输出
字符串是:1243.345600
4. 使用lexical_cast
转换单精度为字符串 是将double转换为字符串的最佳方法之一。
// C++程序演示Double to
// String使用lexical_cast转换
#include <boost/lexical_cast.hpp>
#include <iostream>
#include <string>
using namespace std;
int main()
{
double n = 432.12;
string str = boost::lexical_cast<string>(n);
cout << "字符串是:" << str;
return 0;
}
输出
字符串是:432.12