c语言中数据类型问题

书上有个例子,d为double型变量,值为7.5,进行d/3的运算,先将3转换为double型,d/3结果为2.5,double型。 我的问题是,double ,float有什么区别,我觉得好像就是取值范围不同吧,为什么3还要转换成双精度,转了不也还是3吗?怎么就看出一个数是浮点型还是双精度 ?

第1个回答  2011-11-14
不一样,double是8个字节的,float是4个字节的,因此精度是不同的,取值范围也不同
3转换成double,就是从int转换成double,4字节转8字节,3转换成了3.00000
要看它是float或double,那要看你定义的数据类型是什么了
float f = 3.0;
double d = 3.0;
都是允许的
第2个回答  2011-11-14
对,double型和float型就只有取值范围和精度不同,平时也看不出来。数据取值类型总是由低级向高级自动转换,3为int型,先自动转换为double型
第3个回答  2011-11-18
对,取值范围不同

你说的这个叫类型强制转,数字3是int遇见double则转为double

主要是这些类型变量在计算机中的存储形式不一样,这是内部东西,你看不见的本回答被提问者采纳
第4个回答  2011-11-14
char -> short-> int-> float->double

当一种类型遇到另外一种类型时,会按这种优先级提升已达到“类型一致“的目的,然后再运算
相似回答