sin(pi)不等于0
我的MATLAB的sin(pi)不等于零,输入sin(pi)ans =
1.2246e-016
怎么设置精度,请指点啊
[ 本帖最后由 eight 于 2007-6-13 16:02 编辑 ]
显示
sin(pi)ans =
1.2246e-016 数字“派”总有会有截断误差,作数值计算要习惯这一点 原帖由 enqi01 于 2007-6-13 14:43 发表 http://www.chinavib.com/forum/images/common/back.gif
我的MATLAB的sin(pi)不等于零,输入sin(pi)
ans =
1.2246e-016
怎么设置精度,请指点啊
help format, digits eps(pi)表示你的精度 1.2246e-016,可以了,,不要还是那种死板的想法。 也可以等于零:
sprintf('%.15f',sin(pi))
ans =
0.000000000000000
>> a= sprintf('%.15f',sin(pi))
a =
0.000000000000000
按照你需要的精度,然后定义一个常量a= sprintf('%.Nf',sin(pi))代替sin(pi)就可以。N是需要的小数点后0的个数,使sin(pi)=0的最大N就是15了:loveliness:
[ 本帖最后由 花如月 于 2007-6-14 19:06 编辑 ] 原帖由 花如月 于 2007-6-14 19:00 发表 http://www.chinavib.com/forum/images/common/back.gif
也可以等于零:
sprintf('%.15f',sin(pi))
ans =
0.000000000000000
>> a= sprintf('%.15f',sin(pi))
a =
0.000000000000000
按照你需要的精度,然后定义一个常量a= sprintf('%.Nf',sin(pi))代替 ...
截断输出,逆向思维哈
回复 #8 gerry 的帖子
楼主要得到零的结果,我想来想去也就只有这个法子而已:@L
页:
[1]