c语言,关于atof()函数
简单的一个问题,将保存在字符串中的小数转化为float或者double类型的。我简单实验如下char*str="83.840";doublel=atof(str);输出l...
简单的一个问题,将保存在字符串中的小数转化为float或者double类型的。我简单实验如下
char *str="83.840";
double l=atof(str);
输出l发现,并不等于83.840而是4382760.0000000000
求高人解答,并请教如何将str中的83.840转换出来,谢谢
准确的说,我根本没输出,单步调试,watch窗口看的 展开
char *str="83.840";
double l=atof(str);
输出l发现,并不等于83.840而是4382760.0000000000
求高人解答,并请教如何将str中的83.840转换出来,谢谢
准确的说,我根本没输出,单步调试,watch窗口看的 展开
6个回答
推荐于2018-02-28
展开全部
没问题啊,
给你一个程序确认一下:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
char *str="83.840";
double l=atof(str);
printf("string = %s ,double = %lf\n", str, l);
return 0;
}
输出结果:
string = 83.840 ,double = 83.840000
给你一个程序确认一下:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
char *str="83.840";
double l=atof(str);
printf("string = %s ,double = %lf\n", str, l);
return 0;
}
输出结果:
string = 83.840 ,double = 83.840000
展开全部
经我测试,应该是你没#include “stdlib.h”,只#include “stdio.h”不会报错,但是atof输出有问题。但奇怪的是atoi不会出现这个问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
头文件没有包含吧?
#include <stdlib.h>
#include <stdlib.h>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
atof是用于 把字符串转换成浮点数的函数 ,atof是ascii to floating point numbers 的缩写。
函数原型:double atof(const char *nptr);
参数:nptr是字符串的指针
返回值:返回double类型的数值
注意: atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。
使用需要包含头文件,如#include <stdlib.h>
实例:
#include<stdlib.h>
#include<stdio.h>
int main()
{
double d;
char*str="12345.67";
d=atof(str);
printf("string=%s,double=%lf\n",str,d);
return0;
}
函数原型:double atof(const char *nptr);
参数:nptr是字符串的指针
返回值:返回double类型的数值
注意: atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。
使用需要包含头文件,如#include <stdlib.h>
实例:
#include<stdlib.h>
#include<stdio.h>
int main()
{
double d;
char*str="12345.67";
d=atof(str);
printf("string=%s,double=%lf\n",str,d);
return0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这两个语句没有问题,楼主是不是你输出的时候出问题了呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询