可以采用库函数atof, 头文件为#include <stdlibh>
函数名: atof
用 法: double atof(const char nptr);
实例:
#include<stdlibh>
#include<stdioh>
intmain()
{
double d;
charstr="1234567";
d=atof(str);
printf("string=%sdouble=%lf\n",str,d);
return 0;
}
如果你会用printf,那sprintf也不难理解:
#include <iostream>#include <string>
using namespace std;
int main() {
double d = 123456789;
char buf[256] = "";
sprintf(buf, "%lf", d);
cout << buf << endl;
string str = buf;
cout << str << endl;
return 0;
}
另外再推荐一个stringstream:
#include <iostream>#include <sstream>
#include <string>
using namespace std;
string toString(double d) {
stringstream ss;
// 默认浮点数只输出6位有效数字,这里改成小数点后6位
sssetf(ios::fixed);
ss << setprecision(6) << d;
return ssstr();
}
int main() {
double d = 123456789;
cout << toString(d) << endl;
return 0;
}
用stringstream还可以有奇效哦!比如加上模板:
#include <iostream>#include <sstream>
#include <string>
using namespace std;
template<typename T>
string toString(T t) {
stringstream ss;
sssetf(ios::fixed);
ss << setprecision(6) << t;
return ssstr();
}
int main() {
// 浮点数变成字符串
double d = 123456789;
cout << toString(d) << endl;
// 整数变成字符串
int i = 12345;
cout << toString(i) << endl;
// 字符变成字符串
char ch = 'A';
cout << toString(ch) << endl;
// 指针地址变成字符串
void p = &i;
cout << toString(p) << end;
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)