可以,但是可能会损失精度。例如:int n; float a, b; a = 3.1; b = 4.8; n = a + b; printf("%d\n", n);输出结果是 7。因为把浮点数赋给整型变量时,浮点数的小数部分损失。这样做的意义不大。所以,一般不要进行不同类型变量之间的转换。
数据类型转化包含两种:1 显式转换(强制转化)2 隐式转换从低位转到高位可以隐式转换,例int i = 5;float n = i;这样是正确的,会输出n=5.0从高位转到低位需要显式转换,例float i = 5.5;int n = (int)i;这样也是正确的,不过精度丢失,会输出n=5所以上面你进行的操作是需要进行强制类型转换,不然会报错修改如下:int result = (int)(a+b);说明:不过这样精度会丢失,一般不提倡这么做,你可以float result = a+b;这样就会保证你可以输出正确的结果!!
int是什么,你不可以这样写,type转换是可以的,不然的话,不可以强制类型转换:比如你计算的时候用的是小数,结果想用整数输出,则:r=(int)(a+b)基本上用的是:int,float,(double),char分别是整型,实型(单双精度),字符型。具体说是不带(带)小数点的数,字符比如你要处理的数据都是整数,在定义的时候,说明为int。小数的话,定义为float,字符的话定义为char,这和计算机内存分配关联的希望能帮到你。