在编程时,我们有时会将多种类型的数据一起进行四则运算,这是运算表达式的写法不同,则会造成运算的结果不一致,或者说精度不一致,这主要是截尾现象造成的。
如:
int b=2500;
double r=3.5;
int a;
a=b/1000*r;
//运行后的结果为a=7,因为计算机先进行b/1000,得到2(截尾现象),再将2*r,结果为7
当改为:
a=r*b/1000;
//运行后的结果为a=8,因为计算机先进行r*b,得到8750(),再将8750/1000,结果为8(将结果赋值给a时,强制转化为int时的截尾现象 )
所以在进行连续的乘除运算时,尽量把精度高的数据类型(如foalt,double)写在表达式的前面,这是会防止表达式在开始运算就出现截尾的现象,造成运算的误差增大。