加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

9E307与超精度计算_Excel公式教程

(2016-01-15 22:22:34)
标签:

excel公式教程

数字精度

分类: Excel公式教程-原理篇

在Excel中,为什么用9E307代表最大的数字值?如何对超出15位精度的数字进行计算?

在单元格中,可以输入的最大数字值是9.99999999999999E307,如果输入9E308,那只能保存成文本值。

上述这种数字形式,叫做科学记数,其中的E必须大写。例如52E4相当于52*10^4,也即是520000。

通常把最大的数字值简写成9E307

很多情况下,使用9^9(相当于387420489)代表最大的数字值,也许已经足够了。


Excel的数字值只能精确到15位有效数字。例如输入一个18位的数字123456789012345678,Excel只能保存为123456789012345000。末尾超出精度的数位直接变成0,并不进行四舍五入。

如果你的数字需要保留很高的精度,可以保存为数字型文本(或者叫做文本型数字)。

下面介绍把两个18位精度的文本型数字相加的方法。

假设在单元格A1输入“'123456780912345678”,在单元格A2输入“'222111444555666777”。字符串前头的撇号是一个文本前导符,它使你输入到单元格的所有内容都作为文本值保存。

如何把这两个18位的文本型数字相加呢?

解题思路是:首先,把每个数字拆分为前后两段各9位的数字,分别进行相加;然后,把相加后的两段计算结果再合并为一个文本型数字。

用下面的公式可以把数字的前9位数相加,该公式返回数字值345568224:

=LEFT(A1,9)+LEFT(A2,9)

再用以下公式把两个数字的后9位数相加,该公式返回数字值1468012455:

=RIGHT(A1,9)+RIGHT(A2,9)

后9位数相加的结果,可能是10位的数字(譬如现在的情况),也可能少于9位数(前头的0被省掉)。

因此,在把两段计算结果合并之前,需要做以下两步技术处理:

第一步,如果后段计算结果有进位,就把进位加到前段计算结果里。我们把前段计算公式修正如下:

=LEFT(A1,9)+LEFT(A2,9)+(RIGHT(A1,9)+RIGHT(A2,9)>=1E9)

现在前段计算结果变为数字值345568225,已经加上需要进位的1了。

第二步,确保后段计算结果为9位数字。我们把后段计算公式修正如下:

=RIGHT(TEXT(RIGHT(A1,9)+RIGHT(A2,9),REPT(0,9)),9)

现在后段计算结果变为文本值"468012455",前头的1被截掉了。

最后,把修正后的两段计算公式用文本运算符(&)串起来就可以了,完整的公式如下:

=LEFT(A1,9)+LEFT(A2,9)+(RIGHT(A1,9)+RIGHT(A2,9)>=1E9)&RIGHT(TEXT(RIGHT(A1,9)+RIGHT(A2,
9),REPT(0,9)),9)

该公式返回一个18位的数字型文本"345568225468012455"。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有