0
点赞
收藏
分享

微信扫一扫

深入理解:K&R:如果某个算术运算符有一个浮点型操作数和一个整型操作数,则在开始运算之前整型操作数将会被转换为浮点型

/* //深入理解:K&R:如果某个算术运算符有一个浮点型操作数和一个整型操作数,则在开始运算之前整型操作数将会被转换为浮点型。 */
#include <stdio.h>
int main(){
int x = 1;
int y = 2;
int s ;
float ss;//为了不丢失精度,结果以float型保存
float sf;
float sf1;
float sf2;
s = 1.0+x/y;
ss = 1.0+x/y;
sf = float(x/y);
sf1 = (float)x/(float)y;
sf2 = x/(y*1.0);
printf("sf2 = %f\n",sf2);//0.500000
printf("sf1 = %f\n",sf1);//0.5
printf("sf = %f\n",sf);//0.000000
printf("ss = %f\n",ss );//1.000000
printf("s = %d\n",s );//1
printf("x/y*1.0 = %f\n",x/y*1.0);
printf("(1.0 + x/y) = %f\n",(1.0 + x/y) );//1.000000
/*由于x/y的优先级更高,所以该式为1.0 + 0 = (float)1.0=1.000000 */
printf("(1.0 + x/y) = %d\n",(1.0 + x/y) );//0
printf("1.0 + x/y = %d\n",1.0 + x/y);//结果为0,because 这里%d优先正对单个变量

return 0;
}


举报

相关推荐

0 条评论