0
首先我单独整数部分和与4个数字(例如5.678)的浮动值的浮动部分 接着我乘以1000的浮动部分获得的整数,并且然后把此整数为楼层的功能。Matlab/Octave floor(678.0)= 677.0?
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返回正确的值?
提前THX
的原因是'5.678-5 == 0.678'回报'0',即。由于机器精度算术,“错误”。尝试为你的余数添加'eps':'float_part = x-int_part + eps'。一些信息:http://stackoverflow.com/questions/686439/why-is-24-0000-not-equal-to-24-0000-in-matlab –
显示更多数字使用'格式长克'看看如何' 5.678'正在储存。 – Matt