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