From help-octave-request at bevo dot che dot wisc dot edu Tue Jan 19 01:18:45 1999 Subject: Problem with the floor function From: Daniel Tourde To: help-octave at bevo dot che dot wisc dot edu Date: Tue, 19 Jan 1999 08:17:44 +0100 Hello, I have discovered something strange with the floor function. I suspect a bug but where ? John W. Eaton would bet that floor is correct, but that the display routines in the C/C++ I/O library are doing something slightly different when they display values that are very near but just less than a representable integer. octave:1> floor(46.000) ans = 46 octave:2> k = 0.03 k = 0.030000 octave:3> kmin=0 kmin = 0 octave:4> kstep = 0.01 kstep = 0.010000 octave:5> modes=15 modes = 15 octave:6> (1+(k-kmin)*modes/kstep) ans = 46.000 octave:7> floor(1+(k-kmin)*modes/kstep) ans = 45 <- It should be 46, no ? octave:8> (k-kmin)*modes ans = 0.45000 octave:9> (k-kmin)*modes/kstep ans = 45.000 octave:10> floor((k-kmin)*modes/kstep) ans = 44 <- It should be 45, no ? Strange isn't it ? Does anyone has an idea of where it comes from and how it could be solved ? Thanks in advance Daniel -- *********************************************************************** Daniel TOURDE E-mail : ted at ffa dot se The Aeronautical Research Institute of Sweden Tel : +46 8 55 54 93 44 P.O. Box 11021 S-161 11 BROMMA, Sweden Fax : +46 8 25 34 81 ***********************************************************************