functions java math

java - functions - ¿Hay bibliotecas para Square Root en lugar de BigDecimal?



math.ceil java (3)

(Esta puede no ser una solución para usted)

Siempre que su BigDecimal esté en el rango de doble, puede convertir BigDecimal a doble, use Math.sqrt () y promueva el doble 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á despreciable en comparación con el error inevitable en el cálculo de la raíz cuadrada.

¿Hay alguna biblioteca para Square Root sobre BigDecimal en Java?



JScience v4.3.1 tiene una clase Real que parece ser el equivalente de BigDecimal y que podría ayudarte. 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 : Actualizó el código y los enlaces para reflejar la versión actual en ese momento (v4.3.1). Basado en los comentarios de @ile y @Tomasz, gracias.