如果a,b,c定义为整数的话,b/(2a)就是整除关系了,结果就错误啦。
如果就像把a,b,c定义为整型,那么b/(2a)修改为b/(2.0*a)就可以了
如果sqrt编译也报错的话,就把4改为4.0就行
int是整型,float是浮点型,小数要用浮点型
涉及到除法,就需要能计算小数,int
型在计算除法的时候会只计算整除部分,小数部分就不计算了也不保存,所以计算的结果肯定有误差
x1和x2那两行,用int要加强制类型转换,自动转的有可能丢精度 x1 = (float)b/(2*a)
整型变量计算除法要注意小数位是否需要,比如
A和B都是整型 int a = 5,b=2 ; a/ b = 2;
A和B是浮点型 float a = 5,b = 2; a/b = 2.5
两个整型的运算结果一定是整型,小数位会丢失
一个整型数和一个浮点数运算,结果也会是浮点数