在Excel中计算PI()和3.14159265358979

如果PI() Value(3.14159265358979)直接给出= SIN(3.14159265358979),则返回3.23114E-15 。在计算=SIN(PI())公式时,Excel返回3.23114E-15

请任何人都可以分享你的意见,如何将“PI”和3.14159265358979作为parameter passing。

你看到这个的原因是因为四舍五入的错误。

Sin(PI())在技​​术上为0,详见Sin函数文档 。 但是,excel返回1.22515E-160.0000000000000001225148455 (即大约0

3.14159265358979PI()的近似值,所以它返回一个不同的数字,它也近似为0 。 如果你尝试3.1415926535897等,你会得到一个不同的数字每次。

这可能与使用浮动工具有关 ,但是我对Excel不够了解,以及它如何存储数据来进行详细说明。

我们来看下面的例子:

在这里输入图像说明

A2是公式=PI()

A3是值3.14159265358979

A5是从A2复制的值,然后粘贴特殊值:仅限于值。

B列中的公式为=SIN(A2)=SIN(A5)

那么这里发生了什么?

虽然Microsoft根据IEEE 754使用双浮点精度将截断值修改为15位,但事实并非如此。 根据IEEE 754,可能的十进制数不是15,而是15.95。 所以在某些情况下可能有更多的数字。 如果是这样的话, Excel的文件中最多可以存储17位数字,尽pipe它在其工作表视图中只显示了15位数字,在其工作表视图中也只能input15位数字。

所以=PI()将导致3.1415926535897931正确,这个值也将被存储。 但手动input只能是3.14159265358979 。 但是,如果复制/粘贴特殊值: =PI()的结果,那么也将存储3.14159265358979尽pipe只显示3.14159265358979

由于*.xlsx文件只是ZIP压缩文件,我们可以解压缩它们并查看/xl/worksheets/sheet1.xml 。 在那里我们会发现:

 <row r="2" spans="1:2" x14ac:dyDescent="0.25"> <cr="A2" s="1"> <f>PI()</f> <v>3.1415926535897931</v> </c> <cr="B2"> <f>SIN(A2)</f> <v>1.22514845490862E-16</v> </c> </row> <row r="3" spans="1:2" x14ac:dyDescent="0.25"> <cr="A3" s="1"> <v>3.14159265358979</v> </c> <cr="B3"> <f>SIN(A3)</f> <v>3.2311393144413003E-15</v> </c> </row> <row r="5" spans="1:2" x14ac:dyDescent="0.25"> <cr="A5" s="1"> <v>3.1415926535897931</v> </c> <cr="B5"> <f>SIN(A5)</f> <v>1.22514845490862E-16</v> </c> </row> 

QED

SIN()函数接受以radians的参数。

要将angular度转换为弧度,必须将该值乘以PI()/180

如果使用=SIN(PI()) ,则PI被认为是等于RADIANS(180)的弧度。 两者=SIN(PI())=SIN(RADIANS(180))返回相同的结果0

=SIN(3.14159265358979)实际上不等于=SIN(PI())因为在这种情况下PI是不同的。 因此,不同的结果。

底线是总是使用弧度作为三angular函数的参数。