Real number format
Whenever output is printed (including matrix export to a file) Mosel uses the standard representation of floating point numbers of the operating system (C format %g). This format may apply rounding when printing large numbers or numbers with many decimals. It may therefore sometimes be preferable to change the output format to a fixed format to see the exact results of an optimization run or to produce a matrix output file with greater accuracy. Consider the following example (model numformat.mos):
model "Formatting numbers"
 parameters
  a = 12345000.0
  b = 12345048.9
  c = 12.000045
  d = 12.0
 end-parameters
 writeln(a, "  ", b, "  ", c, "  ", d)
 setparam("REALFMT", "%1.6f")
 writeln(a, "  ", b, "  ", c, "  ", d)
end-model This model produces the following output.
1.2345e+07 1.2345e+07 12 12 12345000.000000 12345048.900000 12.000045 12.000000
That is, with the default printing format it is not possible to distinguish between a and b or to see that c is not an integer. After setting a fixed format with 6 decimals all these numbers are output with their exact values.
 
