¿Hay alguna biblioteca para Square Root sobre BigDecimal en Java?¿Hay bibliotecas para Square Root en lugar de BigDecimal?
Respuesta
JScience v4.3.1 tiene una clase Real
que parece ser el equivalente a BigDecimal
y que podría ayudarle. Un ejemplo de uso:
// The Square Root of Two, to 30 digits
// According to "The Square Root of Two, to 5 million digits."
// Source: http://www.gutenberg.org/files/129/129.txt
System.out.println("1.41421356237309504880168872420");
// Using JScience with 50 digits precision
Real.setExactPrecision(50);
System.out.println(Real.valueOf(2).sqrt());
// Using default java implementation
System.out.println(Math.sqrt(2));
> 1.41421356237309504880168872420
> 1.414213562373095048801689
> 1.4142135623730951
Editar: Actualizado el código y los enlaces para reflejar la versión actual en el momento (v4.3.1). Basado en @ile y comentarios de @Tomasz, gracias.
¡Fantástico, gracias! –
Descargué el paquete JScience y parece que ya no hay Decimal. El enlace de arriba está roto. –
Tiene una clase LargeInteger que parece equivalente http://jscience.org/api/org/jscience/mathematics/number/LargeInteger.html –
Probar Big Square Roots. Utiliza el Newton's method para aproximar soluciones como las raíces cuadradas.
El enlace está roto. Pero puedo obtener lo que parece ser el mismo código https://ritdml.rit.edu/bitstream/handle/1850/8800/BigSquareRoot.java?sequence=4 – demongolem
El enlace en el comentario de demongolem también está roto –
(Esto es puede no ser una solución para usted)
Mientras su BigDecimal está en el rango del doble, se puede convertir el BigDecimal duplicar, usar Math.sqrt() y promover la doble vuelta a BigDecimal. Probablemente sea más rápido que llevar a cabo el cálculo en BigDecimales. En muchos casos, la pérdida de precisión debida a la conversión entre tipos será insignificante en comparación con el error inevitable al calcular la raíz cuadrada.
- 1. Fast Inverse Square Root en x64
- 2. Infinito recursividad en el Meta Square Root Entero
- 3. ¿Hay bibliotecas/frameworks para SCons?
- 4. Sudoku Square en una imagen
- 5. Adición para BigDecimal
- 6. serialización BigDecimal en GWT
- 7. WebImage Crop To Square
- 8. BigDecimal no se puede forzar en BigDecimal
- 9. Magic Square Program (C++)
- 10. ¿Hay algo como rubygems.org para bibliotecas scala
- 11. ¿Hay bibliotecas independientes para Firefox Sync?
- 12. Fast Average Square Difference Función
- 13. ¿Hay bibliotecas ccTalk disponibles?
- 14. ¿Hay algún lugar en el índice de las bibliotecas exclusivas de Py3k?
- 15. BigDecimal en Java
- 16. Convertir BigDecimal en Integer
- 17. BigDecimal Problema en java
- 18. UIImagePickerController - crop picture to square (en vertical)
- 19. ¿Hay un C++ equivalente al BigDecimal de Java?
- 20. ¿Hay bibliotecas de visualización de datos "bonitas" para Python?
- 21. ¿Cómo puedo decirle a querydsl-maven-plugin que genere NumberPath con Long en lugar de BigDecimal?
- 22. Root Nodes en JSON
- 23. BigDecimal escala óptima para la codificación
- 24. Con websockets, ¿hay un lugar para AJAX?
- 25. ¿Qué bibliotecas de objetos falsos hay disponibles para D?
- 26. hay bibliotecas de árbol/widgets para (n) maldiciones
- 27. Doble contra BigDecimal?
- 28. ¿Hay marcos/bibliotecas P2P maduras en C#?
- 29. ¿Hay un análogo .net para las bibliotecas de Boost?
- 30. ¿Hay una diferencia entre BigDecimal ("0") y BigDecimal.ZERO?
Me pregunto, ¿por qué necesita calcular las raíces cuadradas de un BigDecimal? El doble tiene un rango demasiado pequeño? –
Por la misma razón que alguien usa BigDecimal: doble falta de precisión. –
Daniel, pero también lo hace el cálculo de la raíz cuadrada. No puede calcular sqrt (2) con precisión infinita. El uso del método de Newton para calcular la raíz cuadrada introduce un error propio, inherente al algoritmo. –