如何避免计算机计算出错

如何避免计算机计算出错,计算机计算出错的原因之一是,采用浮点数来处理小数(另外,也有因“位溢出”而造成计算错误的情况)。作为程序的数据类型,不管是使用单精度浮点数还是双精度浮点数,都存在计算出错的可能性。接下来将介绍两种避免该问题的方法。

首先是回避策略,即无视这些错误。根据程序目的的不同,有时一些微小的偏差并不会造成什么问题。例如,假设使用计算机设计工业制品。将100个长0.1毫米的零件连接起来后,其长度并非一定要是10毫米,10.000002毫米也没有任何问题。一般来讲,在科学技术计算领域,计算机的计算结果只要能得到近似值就足够了。那些微小的误差完全可以忽略掉。

另一个策略是把小数转换成整数来计算。计算机在进行小数计算时可能会出错,但进行整数计算(只要不超过可处理的数值范围)时一定不会出现问题。因此,进行小数的计算时可以暂时使用整数,然后再把计算结果用小数表示出来即可。例如,本章一开头讲过的将0.1相加100次这一计算,就可以转换为将0.1扩大10倍后再将1相加100次的计算,最后把结果除以10就可以了(代码清单3-3)。

代码清单3-3 将小数替换成整数来计算的C语言程序

#include <stdio.h>
void main() {
    //int是整数的数据类型
    int sum;
    int i;
    //将保存总和的变量清0
    sum =0;
    //将1相加100次
      for (i =1; i <=100; i++) {
          sum +=1;
      }
    //总和结果除以10
      sum /=10;
    //显示结果
      printf("%d\n", sum);
  }

除此之外,BCD(Binary Coded Decimal)也是一种使用二进制表示十进制的方法。简单来讲,BCD就是用4位来表示0~9的1位数字的处理方法,这里不再做详细说明。在涉及财务计算等不允许出现误差的情况下,一定要将小数转换成整数或者采用BCD方法,以确保最终得到准确的数值。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!