fscanf accuracy for floats

John W. Eaton jwe at bevo.che.wisc.edu
Thu Jan 3 15:08:56 CST 2008


On  3-Jan-2008, gOS wrote:

| I'm attempting to read in data from a file: (ex, -0.285121188808)
| 
| There are multiple columns in the file etc. And I'm able to import all of
| the data into Octave. The problem is that -0.285121188808 becomes -0.28512
| which is not precise enough for the calculations that need done with this
| data. I can't seem to find anyway to make this more accurate. I've switched
| between f,e, and g. I've tried multiple permutations of the format, and it
| just isn't panning out. It's worth noting that in Matlab -0.28512 is
| displayed on screen when printed, but the rest of the data is still there
| (multiply by 10 for isntance and you get -2.285121). Octave yields -2.28512.

Did you try "format long"?  For example,

  octave:1> x = sscanf ("-0.285121188808", "%f")
  x = -0.28512
  octave:2> format long
  octave:3> x
  x = -0.285121188808000

jwe


More information about the Help-octave mailing list