【原创】C语言运算符
今天要做一个小Demo用来获取测试数据的,碰到一个特别基础性的语言基础问题,Mark下来。如果双目运算符号的左右两个数值类型为整型,则得出来的数值也为整型,例如一下一个小Demo:
int a = 64;
int b = 65;
float f = (float)(b/a);
float f2 = (float)(a/b);
printf("%f %f",f,f2); //Result: 1.000000 0.000000
/*****************************************************/
float c = 65.0f;
float f3 = a/c;
float f4 = c/a;
printf("%f %f",f3,f4);//Result: 0.984615 1.015625
int b = 65;
float f = (float)(b/a);
float f2 = (float)(a/b);
printf("%f %f",f,f2); //Result: 1.000000 0.000000
/*****************************************************/
float c = 65.0f;
float f3 = a/c;
float f4 = c/a;
printf("%f %f",f3,f4);//Result: 0.984615 1.015625
可以深刻理解上面所说了吧。还有在使用printf和sprintf等进行字符串打印或者转换时,%f一般默认保留小数点后面的六位,%e表示双精度的浮点型double,一般是小数点后面14位,如果要控制小数点后面的位数可以通过"%.4f"这么一种方式去实现保留4小数点后四位。
还有一点需要注意的,在使用sprintf进行数据转换的时候,因为sprintf除了前两个参数意外其他的参数都不是类型安全的,所以在某些使用的情况需要先强制转换类型,例如一种情况:
int a = 100;
printf("%f",a);// Result: 0.000000
/****************************************/
printf("%f",a);// Result: 0.000000
/****************************************/
printf("%f",(float)a);// Result:100.000000
posted on 2010-06-25 11:46 IamEasy_Man 阅读(260) 评论(0) 收藏 举报
浙公网安备 33010602011771号