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?
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.)
"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.
来源:https://stackoverflow.com/questions/12134345/1e-9-or-1e9-which-one-is-correct