%f为浮点型,保留6位小数,即使是个整数,它也会在其后添上小数点和六个零
float有效位是8位(包括小数点)。
故有效的是444444.4。八位以后是系统加上的并不准确。我用vc编译后的结果是
4444444.453125。
printf("C=%10.3f\n",c);是10位的数据宽度即444444.438是10位。3代表小数点后的位数。遵循四舍五入。由C=444444.437500 得444444.438 。
e+05是4.44444*10^5(10的5次方)。+是正号。
%f为浮点型,保留6位小数,即使是个整数,它也会在其后添上小数点和六个零
%10.3f意思是留3位小数,总计10位
%e的意思是科学计数法,e+05表示10的5次方,也有负次方的,所以用+(正号)
这些都是很基础的,其实以后每次程序都用到
一定要耐心打好基础,错过了将来你会后悔的 除非你不做这行
float类型有6位小数,所以1111。111这个数赋值给a后并不是精确的
e+05是科学计数法的意思,e的5次方
难道这就是计算机课内容吗?我要学的就是这个?杯具啊
楼上的说的没错 我来回答下楼主第一个问题吧:
由于float的有效数字是6到7位 因此 7位以后的数据将是无意义的。
比如a=111111。111 对于float类型来说只有前7位有意义,后面几位是无意义的。a+b是有意义的几位相加 7位后出现无意义的随即。所以37500是随即出现的这是实型数据的舍入误差
在计算c=a+b时,a=111111.111 b=333333.333要被强制转换成一个精确到小数点后6位的数,而在转换过程中小数点后的数字会出错。
c=4.44444e+05是科学计数法,e+05是10的5次方,在运行结果里有“+”,占一个字位。
%10.3f意思是留3位小数,总计10位
%e的意思是科学计数法,e+05表示10的5次方,也有负次方的,所以用+(正号)%f为浮点型,保留6位小数,即使是个整数,它也会在其后添上小数点和六个零