Eu quero fazer uma function que leva um valor inserido e converte-lo para notação científica (N x 10 ^ a)
Eu tentei muitas coisas diferentes, mas não consigo acertar.
Exemplo:
Eu entro 200. O conversor converte para 2 x 10 ^ 2
Você pode fazer algo assim:
a = 200 a.toExponential(); //output 2e+2
violino: http://jsfiddle.net/Q8avJ/9/
Se você quer um formato de base 10 como este:
m x 10 n
Então você pode usar uma function como esta:
function writeScientificNum(p_num, p_precision) { var n = Math.round(Math.log10(a)); var m = (p_num * (Math.pow(10,Math.abs(n)))).toFixed(p_precision); document.getElementById("outputTxt").innerHTML = m.toString() + ' x 10' + n.toString() + ''; }
Teste: http://jsfiddle.net/u1hd4zm9/
A única coisa estranha é que o método toFixed (no Chrome, pelo menos) não irá arredondar as metades exatas para cima, mas para baixo. Por exemplo, se você executar este código:
var test = 2.55; alert(test.toFixed(1));
Ele irá imprimir ‘2.5’ e não ‘2.6’ como você espera. No entanto, se você executar este código:
var test = 2.5; alert(test.toFixed(0));
Ele irá imprimir 3. Portanto, esteja ciente disso.