[erlang-questions] display floats without -e?

Dan Sommers 2QdxY4RzWzUUiLuE@REDACTED
Mon Dec 31 20:31:30 CET 2018


On 12/31/18 10:37 AM, Vans S wrote:

 > > 1> 0.0001.
 > 0.0001
 > > 2> 0.00001.
 > 1.0e-5

 > Once floats get to the 4th/5th decimal place they start being
 > displayed with the e-x notation.  Is there a way to make them always
 > display "normally", for example 0.00001 in this case ...

At some point, it's shorter and easier to read with the e-x notation.

Consider a number like 1e-44.  The last thing I want is to have to count
all those zeros.  ;-)

But you probably knew that.

 > ... The problem is when you turn the float into a string, its also
 > displayed as 1.0e-5, adding a format function works yes, but gets
 > annoying to maintain when you need to do arithmetic on the floats.
 > LIke sorting by the value.

I'm confused:  if you're doing arithmetic on the floats, why are you
concerned with the strings?

If you're sorting the strings, then you'll probably either (a) have to
ensure a consistent format, perhaps with something like a ~24.18.0e
specifier, or (b) convert the strings back to floats and suffer various
rounding errors.

 > Also debugging becomes annoying when you see the e-5, e-6, etc
 > notation everywhere and have to match it up.

On that we agree.  :-)

 > Is there a way to compile / add arg to the VM to not do this?

I'm pretty new at Erlang, so I'm probably missing a lot, but how are you
displaying the values now if not with a format function?  (I guess
there's io:write, but at that point, you're awfully close to calling
io:fwrite anyway.)

Are you just using the shell to do immediate calculations?  I'm sure
that the shell has its own default formatting, or maybe it just calls
io:write.

Dan



More information about the erlang-questions mailing list