导读:VC中float和double 型的数字位数是怎么规定弄呢?有效数字是6或7位?为什么总是在小数点后有6位呢? VC中float和double 型的数字位数是怎么规定弄呢?有效数字是6或7位?为什么总是在小数点后有6位呢?比如在vc中#includemain(){float x;x=12345678.0;printf("x=%fn",x);}还有#includemain(){f...
VC中float和double 型的数字位数是怎么规定弄呢?有效数字是6或7位?为什么总是在小数点后有6位呢?
VC中float和double 型的数字位数是怎么规定弄呢?有效数字是6或7位?为什么总是在小数点后有6位呢?
比如在vc中
#include
main()
{
float x;
x=12345678.0;
printf("x=%fn",x);
}还有#include
main()
{
float x;
x=123456789.0;
printf("x=%fn",x);
}
输出的结果有差异,第二歌词程序貌似就是随机数了.求大虾指教
山中人
1年前他留下的回答
已收到1个回答
世界几大我几高
网友
该名网友总共回答了18个问题,此问答他的回答如下:采纳率:83.3%
我来回答你的问题:
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位表示指数部分.
以上是我的学习意见,给你提供参考~
1年前他留下的回答
5
以上就是小编为大家介绍的VC中float和double 型的数字位数是怎么规定弄呢?有效数字是6或7位?为什么总是在小数点后有6位呢? 的全部内容,如果大家还对相关的内容感兴趣,请持续关注上海建站网!
标签:
内容声明:网站所展示的内容均由第三方用户投稿提供,内容的真实性、准确性和合法性均由发布用户负责。上海建站网对此不承担任何相关连带责任。上海建站网遵循相关法律法规严格审核相关关内容,如您发现页面有任何违法或侵权信息,欢迎向网站举报并提供有效线索,我们将认真核查、及时处理。感谢您的参与和支持!