鱼C论坛

 找回密码
 立即注册
查看: 1367|回复: 1

请教各位关于浮点型数据的问题!

[复制链接]
发表于 2014-12-8 22:30:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天请教各位鱼油关于浮点型数据的问题!
1.float和double有效数字分别是6和15,为什么我定义float a=6.0在dev下怎么不会报错?(老谭书上不是说浮点数系统默认双精度)
2.# include <stdio.h>
int main()
{
float a=3.1415926;
double b=3.1415926;
printf("%f,%lf",a,b);
getch();
return 0;
}为什么float和double定义的数,输出的结果均为“3.141593”(怎么会都保留六位呢?)
3.float和double所说的有效数字指的是小数点后还是什么,这里的有效数字能不能理解为“第一个不是0的数字起,到精确到的”?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-8 22:38:05 | 显示全部楼层
有效位数是指在内存中的有效位数
而printf是一个牛逼的函数,即使你再内存中的有效位数是6位,你让printf打印出20位有效位数它也能够打印出来(这就是为什么说这个函数很牛逼),只不过大于6位的所有打印出来的数据都不可信而已。

float a=6.0;6.0是double类型的,被你转换成float类型了。。。这个最懂也就给个警告而已,不算错误,就像
char a = 14;也不会报错一样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 13:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表