在 C 语言 中我们要将一个 字符串 转成 浮点数 ,我们可以使用 strtod 函数。strtod 函数把字符串参数所指向的字符串转换为一个浮点数(类型为 double 型)。
double strtod(const char *str, char **endptr);
参数 | 描述 |
---|---|
str | 要转换为双精度浮点数的字符串。 |
endptr | 对类型为 char 的对象的引用,其值由函数设置为 str 中数值后的下一个字符。 |
该函数返回转换后的双精度浮点数,如果没有执行有效的转换,则返回零(0.0)。
如果 endptr 不为空,则指向转换中最后一个字符后的字符的指针会存储在 endptr 引用的位置。
使用 strtod 函数,需要引入 stdlib.h 头文件。
使用 strtod() 函数,实现将字符串转浮点数
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("嗨客网(www.haicoder.net)\n\n");
char str[] = "12345.6789";
double ret;
ret = strtod(str, NULL);
printf("Num Ret = %f\n", ret);
return 0;
}
程序运行后,控制台输出如下:
我们首先定义了一个 字符数组 str,里面存放的浮点数,接着,我们使用了 strtod 函数,实现了将字符数组 str 转成了 double 类型,并赋值给 ret。
因为,我们的字符数组没有字符串部分,因此,strtod 函数的第二个参数,我们赋值为了 NULL。最后,我们使用了 printf 打印出了转换后的浮点数。
使用 strtod() 函数,实现将字符串转浮点数
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("嗨客网(www.haicoder.net)\n\n");
char str[] = "12345.6789HaiCoder123!";
double ret;
char *strRet;
ret = strtod(str, &strRet);
printf("Num Ret = %f, Str Ret = %s\n", ret, strRet);
return 0;
}
程序运行后,控制台输出如下:
这次,我们使用 strtod 将字符串转成浮点数,同时,我们传入了第二个参数,实现了,将浮点数和字符串都转换了出来。
在 C 语言中我们要将一个字符串转成浮点数 ,我们可以使用 strtod 函数。