EXTREMELY WEIRD arithmetic bug
1 次查看（过去 30 天）
Basically I'm adding 0.001 to a number over and over again. The series starts with zero so the resulting number should ALWAYS be a multiple of 0.01, but instead it eventually degenerates into numbers like 5.874000000000296 - obviously NOT a multiple of 0.001!
Can you explain why? Can it REALLY BE that Matlab just can't cope with numbers of that precision? It's a mathematics package!!!
Run the following code to reproduce the bug. I'm running 7.10.0(R2010a).
Just run log=testcase() and then inspect the latter half of log in the variable editor- when you double-click on a cell to expand it you will be able to see the lack of precision.
function [ log ] = testcase( )
%RUN LIKE THIS: log=testcase()
%Then inspect the log in the variable editor.