VC中float和double 型的数字位数是怎么规定弄呢?有效数字是6或7位?为什么总是在小数点后有6位呢?比如在vc中#includemain(){float x;x=12345678.0;printf("x=%f\n",x);}还有#includemain(){float x;x=123456789.0;printf("x=%f

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 13:02:53
VC中float和double 型的数字位数是怎么规定弄呢?有效数字是6或7位?为什么总是在小数点后有6位呢?比如在vc中#includemain(){float x;x=12345678.0;printf(

VC中float和double 型的数字位数是怎么规定弄呢?有效数字是6或7位?为什么总是在小数点后有6位呢?比如在vc中#includemain(){float x;x=12345678.0;printf("x=%f\n",x);}还有#includemain(){float x;x=123456789.0;printf("x=%f
VC中float和double 型的数字位数是怎么规定弄呢?有效数字是6或7位?为什么总是在小数点后有6位呢?
比如在vc中
#include
main()
{
float x;
x=12345678.0;
printf("x=%f\n",x);
}还有#include
main()
{
float x;
x=123456789.0;
printf("x=%f\n",x);
}
输出的结果有差异,第二歌词程序貌似就是随机数了.求大虾指教

VC中float和double 型的数字位数是怎么规定弄呢?有效数字是6或7位?为什么总是在小数点后有6位呢?比如在vc中#includemain(){float x;x=12345678.0;printf("x=%f\n",x);}还有#includemain(){float x;x=123456789.0;printf("x=%f
我来回答你的问题:
float类型的比特位数为32位,也就是4字节,有效数字为6~7位;
double类型的比特位数为64位,也就是8字节,有效数字为15~16位;
你这里数字为x=12345678.0九位有效数字而float只能接收7位有效数字,那么8.0就是无意义的,并不准确地表示该数.
x=123456789.0时,10位有效数字,同样也只能接收7位有效数字,那么89.0也是无效的,也是不准确地表示该数.
如果你想电脑准确地表示该数应该用double类型就可以了.
我再来给你讲一下为什么总是在小数点后有6位.原因是这样的:
浮点型数据在内存中是按照指数形式存储的.系统把一个浮点型数据分成小数部分和指数部分,分别存放.指数部分采用规范化的指数形式.以24位表示小数部分,以8位表示指数部分.
以上是我的学习意见,给你提供参考~

VC中float和double 型的数字位数是怎么规定弄呢?有效数字是6或7位?为什么总是在小数点后有6位呢?比如在vc中#includemain(){float x;x=12345678.0;printf(x=%f ,x);}还有#includemain(){float x;x=123456789.0;printf(x=%f c语言中double和float有什么用法上的区别 C语言中,表达式18/4*sqrt(4.0)/8的数据类型为什么?是INT,还是FLOAT,还是DOUBLE,是不是C语言中不可能有数据类型是FLOAT的式子,因为所有FLOAT运算时都转成了DOUBLE型的. C语言中,double型数和float型数,的计算时间,分别大约是int型的多少倍啊(据说double是int的几百倍呢) 是不是C语言中不可能有数据类型是FLOAT的式子,因为所有FLOAT运算时都转成了DOUBLE型的. double和float的取值在小数和整数部分都差多少?就是说float的小数到多少位,整数到多少,double是多少. C语言中,浮点型的数值范围是如何算出来的?类型 比特数 有效数字 数值范围 float 32 7 10^-37~10^38 double 64 15~16 10^-307~10^308 long double 80 18~19 10^-4931~10^4932 Java 中float 、double的精度问题:float 、double取值范围是怎么样计算出来的?为什么int型也是占 4个字节,但取值范围是那么小的范围,但是float也是占4 个字节,取值范围为什么就是那么大的? float表示的数有几位整数,几位小数?double型呢? float类型和double类型各精确到几位小数点 float和double型数据的数值范围的求法大家帮帮忙啊,解释一下它们的数值范围的详细求法.谢.汗~~我的意思是数值范围-3.4E-38到3.4E38的具体求法.崩溃,我是问3.4和38这两个数字是咋来的. 下面两个程序,关于float和double.为什么float的那个程序在后面要有(float),但double这个却不用加(double#includeint main(void){int counter,grade,total;float average;total = 0;counter =0;printf(Enter grade,-1 to End;);scanf( C语言数据类型有效数字问题1.长整型的有效位数是否比double多?如果多,那为什么长整型与double型运算时要一律转换成double?2.课本里有如下描述----有如下表达式f=2.45678*4523.65(f为float).系统先 C语言中,为啥float类型的有效数字是7位,而double类型的是16位呢 这两种类型之间赋值时,是怎么赋的啊本人菜鸟,刚接触这个,不懂,最好能举个例子.-P%>_ 单精度浮点数与双精度浮点数的区别如题,即double和float的区别? C语言中,表达式18/4*sqrt(4.0)/8的数据类型是是DOUBLE,是因为所有FLOAT运算时都转成了DOUBLE,还是因为sqrt返回的是double是不是C语言中不可能有数据类型是FLOAT的式子,因为所有FLOAT运算时都转成了DOUBL 以下的变量定义语句中,合法的是( ).A.float $_*5= 3.4F; B.double a =Double.MAX_VALUE; C.byte b1以下的变量定义语句中,合法的是( ).A.float $_*5= 3.4F; B.double a =Double.MAX_VALUE;C.byte b1= 15678; D.int _abc_ = 3721L;java语言 如何确定float,double,longdouble型的数值范围,是怎么确定的呢?怎么算的呢?