C语言实型变量, 的一些问题。

#include <stdio.h>
void main()
{ printf ("%f\n",1.0/3*3); }
得出1.000000
为什么 改成 1/3*3 就会变成0.000000
改成3/2就会 一直Linking...

因为写成1/3系统会按照整型变量去计算,因此1/3=0,乘上3后还是为0。而按照%f浮点型输出,故输出结果为0.000000
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-15
1/3不是1.0/3.0而是(int)1/(int)3当然是0
第2个回答  2011-12-15
1/3是整数除以整数,结果还是整数,为0

C语言实型变量, 的一些问题。
因为写成1\/3系统会按照整型变量去计算,因此1\/3=0,乘上3后还是为0。而按照%f浮点型输出,故输出结果为0.000000

c语言实型变量问题
在C编译系统中,系统默认所有的的浮点型数据为双精度的(也就是double型)。你把一个双精度的数据赋值给一个单精度数据好比把实形数据赋值给整形数据。这样系统就会进行适当的取舍,就会影响到你数据的精度。最终形成了你所说的现象。

C语言中实型变量的问题
double类型的数据输入最好采用%lg,而且我采用你的输入方式没有得到错误的结果;整型数可以自动转换为实型,而实型转换为整型就要进行强制转换,将丢掉小数位,强制转换的方法是(int)x;pow(x,y)是一个内联函数,编译的时候进行替换操作,所以要进行计算一定要用一个中间变量来存储这个结果,不能直...

C语言的数据的实型变量问题
我谈一下个人观点:你想 float占4个字节,double占8个字节。如果一个小数据用大数据的范围去存是不是会对空间照成浪费?而有效数字在大多数情况下没那么重要,但要求严格的数据,需要精确到小数点后那么多位的就有实际意义了!现在你若实在不是很理解也没什么,你只要知道你根据需要定义变量类型就可以...

一个C语言关于实型变量的问题!
使用补码表示的原因。最小的是1000000000000000B = -2^15 你说的各位全是1,它的值是-1,是最大的负数。

C语言实型变量的舍去处理问题?
1 其实%f%lf都一样,都是输出double类型的。2 当参数即上面的4.0\/3.0被传递到printf时,float总是会被转化成double类型的,然后才能背printf正确输出。3 无论是%f还是%lf,只要不指定 精确度和宽度 ,默认的输出都是 小数点 后跟6位,float和double类型只是决定那后6位有几个是有效数字...

C语言实型变量
float的精确度不够.DOUBLE的精确度高些,而且都是有范围的,用的时候注意实数的精确范围,整数就注意别出界了.float 占用32位二进制,有24位用来确定精度,8位用来确定10的多少次方.double占用64位二进制,有48位用来确定精度,16位用来确定的多少次方.24位二进制只能精确到1-2的24次方也就是大概7位数,48...

c语言中实型的整除问题
可以用这种思路:float a,b;\/\/当然b!=0 float c= a\/b;int d=(int)(a\/b);然后判断c和d的差,如果小于一个很小的数(比如1e-6),就认为是整除 和判断两浮点数相等的办法类似,判断两浮点数相等也是看他们两个数之差不大于一个很小的数 ...

C语言中,实型变量中不可以存放整形数是什么意思?
实型变量在C语言中用double类型来运算,double类型占用8个字节,而10作为int类型是4个字节,所以把4个字节的东西放到8个字节中,相当于四个人住进了八个人的房间,当然是可以的。但是反过来,把double放到int里就是不行的了。语法上规定实型变量是不能存放整型类型的数据的,整型数据也不能存放实型数据...

c语言实型变量问题
是的,超出部分数字是无效的,你可以双精度实数:double

相似回答
大家正在搜