在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1 #include<stdio.h> 2 //某些场合,必须进行数据类型转换,以匹配调用 3 void main0(){ 4 printf("%f",1);//printf不管你是什么类型,解析失败就是0 0.000000 5 printf("\n%d",1.0);//0 6 printf("\n%f",(float)1);//1.000000 7 printf("\n%d",(int)1.0);//1 8 getchar(); 9 } 10 11 void main1(){ 12 //实数转整数,会舍弃小数点部分 13 //printf("%d",1/2);//0 14 //printf("\n%d",1/2.0);//0 15 int num=3/2; 16 float f1=1/2.0;//0.5 整数与实数,结果为实数 17 float f2=3/2;//1.000000 整数与整数,结果为整数 18 //1按照%f解析失败,就是0.000000 19 printf("%d,%f",num,num);//1 0.000000 20 //0.5按照%d解析失败,就是0 21 printf("\n%f,%d",f1,f1);//0.500000 0 22 printf("\n%f,%d",f2,f2);//1.000000 0 23 getchar(); 24 } 1.隐式转换 1 #include<stdio.h> 2 //赋值号会自动进行赋值类型转换 3 void main(){ 4 int x=3.8; 5 printf("%d,%d",sizeof(x),sizeof(3.0));// 4 8 6 printf("\n%d",x);//3 7 getchar(); 8 } 2.显式转换(强制转换) 1 #include<stdio.h> 2 // +-*/赋值->自动转换 printf需要强制转换 3 void main(){ 4 printf("%c",(char)65.0); 5 getchar(); 6 } 二、偷钱小程序1 #include<stdio.h> 2 #include<stdlib.h> 3 // 1234.45->1234.4 4 // 1234.46->1234.5 5 // 五舍六入 6 // 1234.45->12344.5 +0.4 12344.9 12344 1234.4 7 // 1234.46->12344.6 +0.4 12345 12345 1234.5 8 void main(){ 9 float RMB,changeRMB; 10 scanf("%f",&RMB); 11 printf("现在有%0.2f元",RMB); 12 changeRMB=((int)(RMB*10.0f+0.4f))/10.0f; 13 printf("\n现在有%0.2f元\n",changeRMB); 14 changeRMB<RMB?printf("可以偷%f元\n",RMB-changeRMB):printf("原封不动\n"); 15 16 system("pause"); 17 } 练习:123.345 小数点第三位先五舍六入,第二位再四舍五入 1 #include<stdio.h> 2 #include<stdlib.h> 3 // 123.345->123.340->123.300 小数点第三位先五舍六入,第二位再四舍五入 4 // 123.346->123.350->123.400 5 // 五舍六入,再四舍五入 6 // 123.345->12334.5 +0.4 12334.9 12334 123.34->1233.4 +0.5 1233.9 1233 123.3 7 // 123.346->12334.6 +0.4 12335 12335 123.35->1233.5 +0.5 1234 1234 123.4 8 void main(){ 9 float RMB,change_start_RMB,change_end_RMB; 10 scanf("%f",&RMB); 11 printf("现在有%0.3f元",RMB); 12 change_start_RMB=((int)(RMB*100.0f+0.4f))/100.0f; 13 printf("\n第三位五舍六入后有%0.3f元",change_start_RMB); 14 change_end_RMB=((int)(change_start_RMB*10.0f+0.5f))/10.0f; 15 printf("\n第二位四舍五入后有%0.3f元\n",change_end_RMB); 16 change_end_RMB<RMB?printf("可以偷%f元\n",RMB-change_end_RMB):printf("原封不动\n"); 17 18 system("pause"); 19 } 三、进制转换itoa1 #include<stdio.h> 2 #include<stdlib.h> 3 4 void main(){ 5 int num; 6 char str[32]; 7 scanf("%d",&num); 8 printf("%d,%u,%o,%x",num,num,num,num);//十进制,无符号十进制,八进制,16进制 9 //要转换的数据,保存的字符串,要转换的进制 10 itoa(num,str,2); 11 printf("\n%s",str); 12 13 system("pause"); 14 }
|
请发表评论