Code Bye

关于double类型变量给float变量赋值的溢出问题

 

今天看了谭浩强的书,用VC6.0实现了其中一个程序段,如下:

#include<stdio.h>
void main()
{
 float f;
 double d;
 d=123.456789e100;
 f=d;
 //f=1e1;
 printf("f=%f\n",f);
 printf("d=%f\n",d);
}

按照以前的认识和书上讲的,将如此大的数赋给一个float变量必定溢出,但是结果如下图:

看最后结果 f和d输出的结果是一样的,请问这是什么情况?

环境是64位win7/VC++6.0

5分

VC6不会连float和double都傻傻分不清楚吧,这么大的数foat没法放

5分

珍惜生命,远离VC6
 
引用 2 楼 mymtom 的回复:

珍惜生命,远离VC6

版主,我就是随便看看,我记起里没有装VS,这个问题是VC的bug么?

 
引用 1 楼 fly_dragon_fly 的回复:

VC6不会连float和double都傻傻分不清楚吧,这么大的数foat没法放

难道这是VC的bug么?能把一个超范围的数直接放到float变量里?

 
http://bbs.csdn.net/topics/390676437

5分

vs2008下溢出了

5分

不要再用VC6了,好吗?
vs2015都要出来了。用下vs2013吧,实在是太优雅了。
 
求大神指点迷津。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于double类型变量给float变量赋值的溢出问题