C语言函数库 里有没有 把字符串转化为浮点数 的函数啊?

C语言函数库 里有没有 把字符串转化为浮点数 的函数啊?,第1张

可以采用库函数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;

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12154007.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存