因为 属于基本类型,在类型不匹配时,会自动隐士类型转换,这就需要 我们自己在赋值时 注意。
强制类型转换:
当操作数的类型不同, 而且不属于基本数据类型时,需要强制类型转换
即:属于基本数据类型时,会隐士类型转换。
int device_space_amount;
unsigned long long device_free_size, device_total_size;
device_space_amount=((float )device_free_size/device_total_size)*100;
int 。。。。= float *100
5 unsigned long long a=1000000000;
6
7 printf("%f\n",(float)a);
[zlg@localhost C]$ ./int_float
1000000000.000000
float : 转成float 为了保留小数部分,或者结果是分数时,不会让结果变成 0
综上:
device_space_amount=((float )device_free_size/device_total_size)*100;
首先 转换成float型,保留小数,然后 *100,得到 %比的整数 ,最后 转换成int (自动,隐士转换)
perfect!