浮点型数和整型数之间的运算小问题~

      在运算时候,一个整型数与一个浮点数进行计算时,他的返回结果是浮点型,(你可以理解这个整型数先被编译器变成了浮点型数,再和那个浮点型数进行计算),如果你把这个浮点型的结果在赋值给一个整型数,那么这个结果就会再转换成整型数(转换结果只取了浮点型的整数部分),如果你直接输出一个整型数与一个浮点型数的运算结果,那么他的输出就是浮点型的。

所以这个细节要注意。(加减乘除都一样,我都试过了,举一下乘法例子)

具体见下面程序。

浮点型数和整型数之间的运算小问题~

浮点型数和整型数之间的运算小问题~

     上面两张图,第一张输出错误,看似没毛病的程序,(我本以为输出结果会是1 和1,),但如果不明白或者不注意编译器在处理浮点数与整型数的运算过程。就会造成错误了。虽然定义的b是一个整型数,但它和一个浮点型数0.5,一起运算之后,结果变成了浮点型数,所以在输出时候,要按浮点型数输出,如果将一个浮点型数进行取整输出,如第二张图的%.0f,小数部分会进行四舍五入处理。

     上面我只举了一个整型数和0.5相乘的情况,第一张图错误的输出结果是0,但不要认为这样的运算,错误结果都是0;换成了别的数后就错的更离谱了。如下图。

浮点型数和整型数之间的运算小问题~

所以,就是知道那样输出错误就行。