excel中PI()和3.14159265358979的计算

时间:2017-08-16 12:04:31

标签: excel excel-formula

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

任何人都可以分享您对Excel如何以不同方式计算的意见,以及PI'和3.14159265358979作为参数传递。

3 个答案:

答案 0 :(得分:1)

您看到这个的原因是因为舍入错误。

Sin(PI())技术上为0,详见the Sin function documentation。但是,Excel会返回1.22515E-160.0000000000000001225148455 (即大约0

3.14159265358979PI()的近似值,因此它返回的值与0大致相同。如果您尝试3.14159265358973.141592653589等,则每次都会获得不同的数字。

这可能与使用floats有关,但我对Excel及其存储数据的详细说明知之甚少。

答案 1 :(得分:1)

我们有以下示例:

enter image description here

A2是公式=PI()

A3的值为3.14159265358979

A5是从A2复制的值,然后是paste-special:仅限值。

专栏B中的公式为=SIN(A2) ... =SIN(A5)

那么这里发生了什么?

虽然使用IEEE 754的双浮点精度将Microsoft证明截断值为15位数,但这不是全部。根据IEEE 754,可能的小数位数不是15,而是平均15.95。因此在某些情况下可能存在更多数字。如果是这样,Excel在其文件中最多可存储17位数字,尽管它在工作表视图中仅显示15位数字,并且在其工作表视图中也只能输入15位数字。

因此=PI()将完全导致3.1415926535897931,并且还会存储此值。但手动输入只能是3.14159265358979。但是,如果你复制/粘贴特殊:值=PI()的结果,那么3.1415926535897931也将被存储,尽管只显示3.14159265358979

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

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

q.e.d。

答案 2 :(得分:0)

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

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

如果您使用=SIN(PI()),则PI被视为等于RADIANS(180)的弧度。 =SIN(PI())=SIN(RADIANS(180))都会返回相同的结果0

=SIN(3.14159265358979)实际上并不等于=SIN(PI()),因为此上下文中的PI不同。因此结果不同。

底线是始终使用弧度作为三角函数的参数。