回复: [求助]小程序怎么出现令人费解的问题?
这是因为计算机计算精度问题,如果你是32位计算机那么就尝试一下64位机器上是否如你所愿。
在command window可以看到matlab给j的赋值:
j1 = (0.05:0.05:0.7)'
j1 =
5.000000000000000e-002
1.000000000000000e-001
1.500000000000000e-001
2.000000000000000e-001
2.500000000000000e-001
3.000000000000000e-001
3.500000000000000e-001
3.999999999999999e-001 %%%%% 这里,经过matlab运算后4->3.999999999999
4.500000000000000e-001
4.999999999999999e-001 %%%%% 这里,同上
5.499999999999999e-001 %%%%% 这里,同上
6.000000000000000e-001
6.499999999999999e-001 %%%%% 这里,同上
7.000000000000000e-001
floor等舍入函数用的时候要谨慎,因为3.999999999999会被舍入成为3,稍大的程序你就难以预料到会有什么结果出来。
|