在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-16
或0.0000000000000001225148455
(即大约0
)
3.14159265358979
是PI()
的近似值,所以它返回一个不同的数字,它也近似为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函数的参数。