VBA: 小数存储精度问题single vs. double 您所在的位置:网站首页 excel表格计算小数点后数据不准确 VBA: 小数存储精度问题single vs. double

VBA: 小数存储精度问题single vs. double

2024-07-16 21:55| 来源: 网络整理| 查看: 265

计算机只能处理 2进制数。然而,只有少数小数能够被完整表达成二进制数(比如:十进制的0.125=二进制的(0.001),或者说 1*2^(-3),而十进制的 0.1 表示成二进制的话就成了无限小数一般:1*2^(-4)+1*2^(-5)+1*2^(-8)+1*2^(-9)+……)。而计算机的内存位数肯定是有限的,所有总会有取舍! 这是硬件上的局限性引起的,不是软件的错误! 我们再从另外一个角度来看问题,即数据的有效性问题!或许楼主可能会知道任何数据的测量是不可能精确和准确的!所以,任何数据所测的结果只有统计学上的意义,它在一定范围内才是准确的!同时,受制于测量仪器或仪表的精度,它的有效性范围也是不同的。最直接的表现就是它的有效位数是不同的。比如说,你用一个直尺来量一个东西的长度,得到的值是 2.5 mm(最后一位是你自己估计的,因为直尺上没有 0.1 mm 的刻度)。这时你又换用一个游标卡尺来测量这个东西,得到的结果是:2.385 mm (游标卡尺的最小刻度是 0.02 mm。最后一位 5也是估计出来的)。相信大家一看就明白,前者的 2mm肯定是准确的,0.5mm是不准确的;而后者的2.38mm 肯定是准确的,但 0.005mm 是不准确的。所以,在数据处理过程中会特别强调数据的有效位数,即它的精度!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有