| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9050 人关注过本帖
标题:求教各位,float到底可以输出几位有效数字?
只看楼主 加入收藏
波心冷月
Rank: 1
等 级:新手上路
帖 子:8
专家分:5
注 册:2012-10-29
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:8 
求教各位,float到底可以输出几位有效数字?
程序代码:
#include<stdio.h>
main()
{
    float a=123.234222222;
        printf("%f\n",a);
}
为什么输出的是123.234222,不是只能显示7位有效数字吗?谢谢各位了
搜索更多相关主题的帖子: 有效 
2012-10-29 19:22
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
#include<stdio.h>

main()
{
    double a=123.234222222;
    printf("%20.9lf\n",a);
}

试试看  你这个例子 单精度已经不可以了  要设置双精度才可

DO IT YOURSELF !
2012-10-29 19:39
junjia
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2012-10-28
收藏
得分:3 
小数点后六位
2012-10-29 19:46
小小小火柴
Rank: 5Rank: 5
来 自:江西赣州
等 级:职业侠客
威 望:3
帖 子:141
专家分:337
注 册:2012-9-28
收藏
得分:3 
   如果只是        printf("%f\n",a);
那么就是默认输出小数点后6位数!

   好好学习!
2012-10-29 20:49
橡皮孩子
Rank: 2
等 级:论坛游民
帖 子:23
专家分:29
注 册:2011-12-13
收藏
得分:0 
你在初始化float数据的时候可以在后面加(F/f)否则默认为double类型!尽管你定义的时float类型,但实际上还是double类型。编译器是这样认为的!!!!
2012-10-30 21:04
疯狂懵懂
Rank: 1
等 级:新手上路
帖 子:4
专家分:1
注 册:2012-10-31
收藏
得分:0 
系统默认是小数点后六位,可以对它进行控制
2012-10-31 21:00
枫中残雪
Rank: 1
等 级:新手上路
帖 子:6
专家分:6
注 册:2011-3-10
收藏
得分:0 
#include <stdio.h>
void main()
{
    float a=(float)123.234222222;
    printf("a=%0.9f\n",(double)a);
}
由于强制转换使。后的7-9发生了变化
最好还是直接定义为
double a=123.234222222;
2012-11-01 04:37
hfhf2006
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:62
专家分:169
注 册:2012-6-29
收藏
得分:0 
3楼对头,你没搞清楚一件事情,就是printf输出是用了一个%f格式,%f默认只输出小数点后的6位小数,你说的flaot的精度的确也是7位,是你搞混了这个概念
2012-11-01 11:10
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3451
专家分:19340
注 册:2012-3-31
收藏
得分:0 
看看

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2012-11-01 11:47
快速回复:求教各位,float到底可以输出几位有效数字?
数据加载中...
 
   



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

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