刚学C语言,有个小疑点想问一下
刚学C语言,有个小问题想问一下我用谭浩强的书书上有个地方说:“int型与float型运算,是先把int型和float型都
刚学C语言,有个小问题想问一下
我用谭浩强的书
书上有个地方说:“int型与float型运算,是先把int型和float型都转换到double型,然后进行运算,结果是double型”
比如 int i=5;
float f=1.2;
那么i+f的结果将会是double型的。
为了验证这句话,我做了个实验,将i+f赋给一个float型的变量f2。。。。→f2=i+f;
如果那句话是对的,那么编译器将会有1个警告,因为将一个double型的赋给了一个float型,但事实上并没有警告,这是怎么回事?
[解决办法]
[解决办法]为啥float运算要比double慢呢?
因为float都要转化成double类型去运算。比起原本是double,这不是多了一个转换么?
为啥一定要转化呢?
因为很多机器不支持float类型运算,所以对于float的支持只是模拟,其实就是转换了数据类型去运算。
所以根据c运算规则,向大靠拢,int和float类型运算,本来都是应该转化成float的,但是float本身运算都是转换成double进行运算。所以。。。。