double类型如何转化为char*类型?
1. 先把double转化为string类型
方式一: 使用sprintf需要引用cstdio头文件
double d = 0.123456789
char buffer[10];
sprintf(buffer, "%.9f", d); //9位小数
string str = buffer;
方式二:使用to_string,添加string头文件。c++低版本需要转为long double
double d = 0.123456789
string str = to_string(d);
//string str = to_string((long double)d);
2. 把string类型转化为char*类型
这里str.c_str()转化出来的是const char*类型,需要进行转换
char *c = const_cast<char *>(str.c_str());
//或者
char *c = (char*)str.c_str();
测试
#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
int main()
{
double d = 0.123456789;
char buffer[9];
sprintf(buffer, "%.9f", d);
string str = buffer;
char *c = const_cast<char *>(str.c_str());
cout<<c;
return 0;
}
运行结果: 0.123456789