2012-06-20 17 views
20

Quiero hacer una función que tome un valor introducido y la convierta en notación científica (N x 10^a)¿Cómo puedo convertir números en notación científica?

He intentado muchas cosas diferentes, pero parece que no puedo hacerlo bien.

Ejemplo:

entro 200. El convertidor convierte a 2 x 10^2

+2

Muéstranos lo que has probado. –

+0

También me gustaría obtener información más específica. es decir, ¿cuántos dígitos significativos es el máximo? 2.121.212 -> 2 x 10^6 o 2.1 x 10^6, etc., etc. ¿Cuál es el "corte" Supongo – Sephallia

Respuesta

50

Usted puede hacer algo como esto:

a = 200 
a.toExponential(); //output 2e+2 

violín: http://jsfiddle.net/Q8avJ/9/

+1

Wow, no sabía que esto existe :) –

+0

Wow, no sabía que esto tampoco existe :) – Amadan

+1

¡Impresionante! Pero, ¿hay alguna forma de hacerlo en la forma N x 10^a? ¡Aún así puedo arreglarme con esto! – Samar

1

Si desea un formato base 10 como este:

m x 10 n

continuación, puede utilizar una función 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<sup>' + n.toString() + '</sup>'; 
} 

probarlo: http://jsfiddle.net/u1hd4zm9/

cosa Sólo curioso es que el método toFixed (en Chrome al menos) no redondeará las mitades exactas hacia arriba, sino hacia abajo. Por ejemplo, si ejecuta este código:

var test = 2.55; 
alert(test.toFixed(1)); 

Imprimirá '2.5' y no '2.6' como esperaba. Sin embargo, si ejecuta este código:

var test = 2.5; 
alert(test.toFixed(0)); 

Se imprimirá 3. Tenga en cuenta que.

Cuestiones relacionadas