标题:求教个关于 float 数据类型的问题。
只看楼主
mengt2012
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2014-8-8
 问题点数:0 回复次数:5 
求教个关于 float 数据类型的问题。
//ceshi.c -- 测试float的有效数字。
#include <stdio.h>
int main(void)
{
    float a = 0.0;

    scanf("%lf", &a);
    printf("%f", a);

    return 0;
}

这是我的代码,请问哪里出错了?我试着输入一些比较小的小数2.3之类的,他输出给我一个很奇怪的数字。

而把float换成double就不会。这是什么原因呢?
搜索更多相关主题的帖子: include double return 
2014-08-08 15:34
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
scanf 中 %lf 对应的是 double 类型。(%f对应float,%Lf对应long double)
printf 中 %f 对应 float或double 类型,%Lf对应long double
2014-08-08 15:48
mengt2012
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2014-8-8
得分:0 
回复 2 楼 rjsp
原来如此。

非常感谢
2014-08-08 16:00
宇宙规律
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:232
专家分:128
注 册:2014-5-7
得分:0 
#include <stdio.h>
void main()
{
    float a = 0.0;

    scanf("%f", &a);
    printf("%f\n", a);

    return 0;
}

3
3.000000
Press any key to continue

5
5.000000
Press any key to continue
2014-08-08 16:04
mengt2012
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2014-8-8
得分:0 
回复 4 楼 宇宙规律
我明白了,谢谢您。
2014-08-08 16:10
DavidCheung
Rank: 2
等 级:论坛游民
威 望:1
帖 子:14
专家分:35
注 册:2014-8-8
得分:0 
在我机器上sizeof(double)和sizeof(long double)都是8
2014-08-08 16:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-434830-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.921979 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved