var a = 5.0;
var b = a * 10e-12;
b *= 10e+12
print(b)
Why b equals 500 instead of 5?
据我所知10 ^( - 12)等于1 /(10 ^ 12),我该如何重写代码?
答案 0 :(得分:7)
因为数学。 10e1
为100
,10e-1
为1
。
10e1 * 10e-1
是100
。 10e2 * 10e-2
是100
。10e3 * 10e-3
是100
。您可以非常轻松对此进行扩展,以确定10eN * 10e-N
始终为100
。
如果您想要实际的科学记数法,例如1 * 10 ^ 2
,则需要1e12
和1e-12
。
答案 1 :(得分:6)
10 -12 ×10 12 = 1
但是你写的不是10 -12 ,也没有写10 12 。
你写的是10×10 12 和10×10 -12 :
10×10 12 ×10×10 -12 = 100
100×5 = 500
适当的科学记数法是1e-12
和1e12
。 e
代表“十分之一”,因此您无需再将该值乘以十。
答案 2 :(得分:1)
“据我所知10 ^( - 12)等于1 /(10 ^ 12)” - 这是正确的,但是
10e-12
实际上意味着10 * 10 ^( - 12)