On 4/18/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > Full_Name: Johannes Prix > Version: 2.1.1 > OS: WinXP, SuSE Linux > Submission from: (NULL) (137.208.41.195) > > > > The seq-command produces unnescessary inaccurate results, which can be > extremely > annoying. I absolutely do not see the nescessity of numerical garbage to > appear > in the following simple case. E.g. try this: > > > seq ( 61.55 , 62.00 , by=0.01 ) - round ( seq ( 61.55 , 62.00 , by=0.01 ) , > digits=2 ) > > Output looks like: > > [1] 0.000000e+00 -7.105427e-15 0.000000e+00 0.000000e+00 -7.105427e-15 > -7.105427e-15 0.000000e+00 0.000000e+00 > [9] -7.105427e-15 0.000000e+00 0.000000e+00 0.000000e+00 -7.105427e-15 > 0.000000e+00 0.000000e+00 -7.105427e-15 > [17] -7.105427e-15 0.000000e+00 0.000000e+00 -7.105427e-15 0.000000e+00 > 0.000000e+00 -7.105427e-15 -7.105427e-15 > [25] 0.000000e+00 0.000000e+00 -7.105427e-15 0.000000e+00 0.000000e+00 > -7.105427e-15 -7.105427e-15 0.000000e+00 > [33] 0.000000e+00 -7.105427e-15 0.000000e+00 0.000000e+00 0.000000e+00 > -7.105427e-15 0.000000e+00 0.000000e+00 > [41] -7.105427e-15 -7.105427e-15 0.000000e+00 0.000000e+00 -7.105427e-15 > 0.000000e+00 > > > > It is particularly dangerous to use such seq()-contructed lists (without > rounding) when e.g. trying to find the first time a given number appears in > the > list and the number is given without numerical garbage.
Hmmm... I guess I'm the first on this one. It is not garbage, it is just the nearest number the computer can calculate given your instructions. It has all to do about numerical precision, and representation of numbers in a computer, e.g. 0.1 base 10 can not be represented exactly in binary format. For example, how do you write 1/3 (in base 10) on a piece of paper without using rational representation? In base 3 it is 0.1 sharp! Look in the r-help archive and you'll find tons of questions like yours and even more answers. For this reason, don't compare doubles using "==", that is very risky! Instead check if it is close enough, e.g. abs(x-y) < eps or all.equal(x,y) or similar. /Henrik > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > > -- Henrik Bengtsson Mobile: +46 708 909208 (+2h UTC) ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel