当前位置:首页 > 配件供应 > 正文

9E307与超精度计算

_Excel公式教程(2016-01-1522:22:34)转载▼标签:excel公式教程数字精度分类:Excel公式教程-原理篇在Excel中,为什么用9E307代表最大的数字值?如何对超出15位精度的数字进行计算?在单元格中,可以输入的最大数字值是9.99999999999999E307,如果输...

_Excel公式教程(2016-01-1522:22:34)转载▼标签:excel公式教程数字精度分类:Excel公式教程-原理篇在Excel中,为什么用9E307代表最大的数字值?如何对超出15位精......

_Excel公式教程(2016-01-1522: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输入“'2221177”。字符串前头的撇号是一个文本前导符,它使你输入到单元格的所有内容都作为文本值保存。

如何把这两个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"。


最新文章