var a = 5.0;
var b = a * 10e-12;
b *= 10e+12
print(b)
Why b equals 500 instead of 5?
As far as I know 10^(-12) equals to 1/(10^12), how can
Because math. 10e1
is 100
and 10e-1
is 1
.
10e1 * 10e-1
is 100
. 10e2 * 10e-2
is 100
.10e3 * 10e-3
is 100
.You can very easily extend this to figure out that 10eN * 10e-N
is always going to be 100
.
If you want actual scientific notation, as in 1 * 10 ^ 2
, you want 1e12
and 1e-12
.
"As far as I know 10^(-12) equals to 1/(10^12)" -- that is correct, but
10e-12
actually means 10*10^(-12)
10-12 × 1012 = 1
But what you wrote wasn't 10-12, nor did you write 1012.
What you wrote was 10 × 1012 and 10 × 10-12:
10 × 1012 × 10 × 10-12 = 100
100 × 5 = 500
Proper scientific notation is 1e-12
and 1e12
. The e
stands for "ten to the power of", so you don't need to multiply that value by ten again.