因为 属于基本类型,在类型不匹配时,会自动隐士类型转换,这就需要 我们自己在赋值时     注意。

 

强制类型转换:

当操作数的类型不同,  而且不属于基本数据类型时,需要强制类型转换

即:属于基本数据类型时,会隐士类型转换。

 

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!

posted on 2012-06-12 10:37  肯定;爱  阅读(222)  评论(0编辑  收藏  举报