C语言中有没有把字符转型化为 浮点型的函数?

Python014

C语言中有没有把字符转型化为 浮点型的函数?,第1张

C语言中将字符串转型化为浮点型数据的函数有:atof()  和 strtod()

头文件:

#include <stdlib.h>

函数原型:

double atof (const char* str) 

参数说明】str 为要转换的字符串。

【函数说明】atof() 函数会扫描参数str字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。参数str 字符串可包含正负号、小数点或E(e)来表示指数部分,如123. 456 或123e-2。

【返回值】返回转换后的浮点数;如果字符串 str 不能被转换为 double,那么返回 0.0。

double strtod (const char* str, char** endptr)

【参数说明】str 为要转换的字符串,endstr 为第一个不能转换的字符的指针。

【函数说明】strtod() 函数会扫描参数str字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时('\0')才结束转换,并将结果返回。参数 str 字符串可包含正负号、小数点或E(e)来表示指数部分。如123. 456 或123e-2。

若endptr 不为NULL,则会将遇到的不符合条件而终止的字符指针由 endptr 传回;若 endptr 为 NULL,则表示该参数无效,或不使用该参数。

【返回值】返回转换后的浮点型数;若不能转换或字符串为空,则返回 0.0。

使用 atof( str ) 与使用 strtod(str, NULL) 结果相同。

一般应用方法为:

char str[]="123.45"

double d=atof(str)

printf("%.2lf", d ) //输出123.45

如果字符串已放在 char 数组 str[] 里,例如

char str[]="123.34.34"

double d

if ( sscanf(str,"%lf",&d) != 1 ) printf("wrong floating data\n")