2010-09-15 11 views
6

Ejecutar este fragmentoCómo evitar la limitación cálculo de JavaScript

  document.write(parseFloat("999999999999999")); 
 
      document.write("<br>"); 
 
      document.write(parseFloat("555555555555555555555555.99")); 
 
      document.write("<br>"); 
 
      document.write(parseInt("9999999999999999.99")); 
 
    
 
      document.write("<br>"); 
 
      document.write(parseInt("88888888888888888",10)); 
 
      document.write("<br>"); 
 
      document.write(parseFloat("88888888888888888"));

Usted notará que la conversión de cadena a un número válido está libre de errores. Esta es una limitación conocida en javascript de hasta 15 dígitos (?). Sé que si se trata de una limitación JS, entonces no podemos hacer nada al respecto. Pero en el mundo empresarial de AJAX, siempre tendremos que calcular lotes en el navegador. Y con la llegada de node.js en el lado del servidor, esto ya no es tolerable y la comunidad necesita encontrar una solución para eludir, si no resolver, este problema de una vez por todas.

Mi jefe encontró high precision Javascript calculator pero es de cpu hogging. Otra solución es darle eso al lado del servidor, pero eso aumentará el "chattiness", que es un antipatrón. Lo que estoy preguntando es, ¿cómo resolverías esto?

Corrígeme si me equivoco en alguna de las cosas que mencioné anteriormente.

+0

Sí, JavaScript no funciona con números de precisión arbitrarios, pero hay muchas bibliotecas para eludir el problema. Google para "bigdecimal library js". – georg

Respuesta

1

Si JavaScript no puede analizar números enormes, es probable que no pueda hacer nada útil con ellos tampoco, como los cálculos (sin la calculadora con memoria intensiva a la que ha publicado un enlace). Si necesita mostrar el número, ¿por qué no utilizar una solicitud de Ajax? Intente consolidar múltiples operaciones de número a cadena en una única solicitud.

+0

+1 El "chattiness" adicional no es un patrón anti en este caso, ya que su problema es que JavaScript no admite una gran precisión decimal para los números. –

Cuestiones relacionadas