在matlab中为什么sin(pi)不等于0

如题
pi是系统自定的量,我没有赋值。但是sin(pi/2)它是等于1的啊。为什么sin(pi)就不等于0呢?

首先你得明白,MATLAB定义的pi是一个近似数
来自MATLAB帮助:The expression sin(pi) is not exactly zero because pi is not exactly .
pi returns the floating-point number nearest the value of pi,pi定义为一个浮点数,任何浮点数都会有量化误差,因为pi为无限不循环数,不可能有精确的浮点数
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-24
sin(pi)

ans =

1.2246e-016

这个可认为是0了, 因为双精度计算时是有误差的本回答被提问者采纳
第2个回答  2010-05-24
你肯定是pi在之前给了值.如pi=3.1415.事实上,pi是无限不循环小数.如果你事先给定了pi的值就有可能.
第3个回答  2010-05-24
由于pi是无限不循环小数,与180度的弧度不完全等同。
第4个回答  2010-05-24
因为浮点数不能表示精确值,并且计算会产生误差。
相似回答