作业帮 > 综合 > 作业

MATLAB ceil的问题

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/19 21:03:17
MATLAB ceil的问题
>> ceil(0.6*5)
ans =
3
>> ceil(0.2*3*5)
ans =
4
请问这是为什么?
这是由数值计算误差引起的:>> 0.2*3*5-3
ans =
  4.4409e-016 如果看一下数据的16进制表示:>> format hex
>> 0.2*3*5
ans =
   4008000000000001
>> 3
ans =
   4008000000000000刚好在最低位由于数值计算误差导致略大于3,所以求ceil的结果是4. 对付数值计算误差没什么太好的办法,有时候换一种写法,结果就会不同:>> format short
>> ceil(0.2*5*3)
ans =
     3很崩溃是不是?