Matlab / Octave floor(678.0)= 677.0?

时间:2015-11-16 23:35:25

标签: matlab octave floor

首先,我将4位数的浮点值的整数部分和浮动部分分开(例如5.678) 接下来,我将浮动部分乘以1000得到一个整数,然后将这个整数放入floor函数。

x = 5.678
int_part = floor (x)            % result is 5
float_part = x - int_part       % result is 0.678
float_part = float_part * 1000  % result is 678
floor (float_part)              % returns 677 instead of 678

这里发生了什么?如何告诉Matlab / Octave返回正确的值?

提前谢谢

1 个答案:

答案 0 :(得分:1)

x = 5.678
int_part = floor (x)            % result is 5
float_part = x - int_part       % result is 0.678
float_part = float_part * 1000  % result is 678
floor (float_part)              % returns 677 instead of 678
format long
disp(float_part)

答案是

6.779999999999999e+02

所以楼层(float_part)是

677