一个问题求确认!
请问对于一个float数据,是不是可以对他自增或者自减?在进行自增自减的时候是不是必须强制转换成int?比如
float i;
(int)i++;
并且即使强制转换,float的值不会变化?
#include "stdafx.h"
#include "stdio.h"
int main()
{
float y;
y=0.125;
for(;(int)y<2;(int)y++) //没有(int)的话报错,但调试能看到结果正常呢,有int不报错,结果也正常
printf("%f\n",y);
return 0;
}
[解决办法]
强制转换不会改变参数在内存里的值,只是把他当成另外一个类型的变量来使用
浮点数和整型在内存里的保存方法完全不一样,因此你这样用是不行的
[解决办法]
首先,自增和自减运算符只能对整型变量(或可以自转换成整形,如char)或者指针使用,不能对常量或者浮点型使用。
float强制转换为int是取整操作,值当然会发生变化。