关于C++多种数据类型四则运算的精度问题

在编程时,我们有时会将多种类型的数据一起进行四则运算,这是运算表达式的写法不同,则会造成运算的结果不一致,或者说精度不一致,这主要是截尾现象造成的。

如:

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)写在表达式的前面,这是会防止表达式在开始运算就出现截尾的现象,造成运算的误差增大。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值