1e-9 or -1e9, which one is correct?

106,345

Solution 1

Neither is more correct than the other. They just represent different values.

1e-9 is 0.000000001; the minus sign applies to the exponent.

-1e9 is -1000000000.0; the minus sign applies to the number itself.

The e (or E) means "times 10-to-the", so 1e9 is "one times ten to the ninth power", and 1e-9 means "one times ten to the negative ninth power". In mathematical scientific notation, this is usually denoted by a superscript: 1 × 10-9 or -1 × 109. Programming languages adopted the e or E notation because it was easier to type and print than a superscript (and still is, for that matter). (I think this may have been introduced by Fortran in the 1950s, but I'm not sure of the exact history.)

Solution 2

"Low" and "high" refer to absolute values. The low number is small in absolute values, the high one is large. Negatives aren't important, since you already understand how to work with those. What's important about floats is their variable scale (i.e. the exponent), and so it is customary to provide lower and upper bounds for the scale rather than the value.

Share:
106,345
Joan Venge
Author by

Joan Venge

Professional hitman.

Updated on July 09, 2022

Comments

  • Joan Venge
    Joan Venge almost 2 years

    I am assigned some old code and when I was reading through it, I noticed it had these in the form of:

    float low = 1e-9;
    float high = 1e9;
    
    float lowB = 1e-9;
    float highB = 1e9;
    
    float lowL = 1e-9;
    float highL = 1e9;
    

    So I see that it's trying to define some ranges using the e notation, right? But isn't 1e-9 supposed to be -1e9?

    Then the values would be between -1000000000 and 1000000000, right?

    I am not sure what 1e-9 is meant for?

  • pullidea-dev
    pullidea-dev over 2 years
    funny and intuitive headline