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窗口看的
展开
 我来答
匿名用户
推荐于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
纸扰洽2253
2012-06-08 · TA获得超过6.3万个赞
知道大有可为答主
回答量:2.8万
采纳率:0%
帮助的人:3736万
展开全部
经我测试,应该是你没#include “stdlib.h”,只#include “stdio.h”不会报错,但是atof输出有问题。但奇怪的是atoi不会出现这个问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1917e76c0
2019-10-18
知道答主
回答量:3
采纳率:0%
帮助的人:2959
展开全部
头文件没有包含吧?
#include <stdlib.h>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hwd0312
推荐于2016-05-09 · TA获得超过4336个赞
知道小有建树答主
回答量:1043
采纳率:100%
帮助的人:172万
展开全部
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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lmzonline
2009-04-02 · 超过27用户采纳过TA的回答
知道答主
回答量:99
采纳率:0%
帮助的人:92.3万
展开全部
这两个语句没有问题,楼主是不是你输出的时候出问题了呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式