es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo agregar un valor largo y preservar la precisión al imprimir.

¿Cómo puedo conservar la precisión en la salida de mi suma? Creo que lo que sucede es que la precisión es exactamente la misma, pero una opción elige redondear.

java

public class Main {
public static void main(String[] args) {
final long seconds = 1637208584L;
final long micro_of_second = 795307;
final long sum = seconds + micro_of_second;
System.out.println(“seconds + micro_of_second: ” + seconds + micro_of_second);
System.out.println(“sum: ” + sum);
System.out.println(“¿igual?: ” + (sum == seconds + micro_of_second));
}
}

Resultado

bash
seconds + micro_of_second: 1637208584795307
sum: 1638003891
¿igual?: true

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para preservar la precisión en la salida de sum, puedes utilizar la clase BigDecimal. Esta clase permite especificar la precisión de la salida. Por ejemplo:

    BigDecimal bd1 = new BigDecimal(segundos);
    BigDecimal bd2 = new BigDecimal(microsegundos_de_segundo);
    BigDecimal sum = bd1.add(bd2);
    System.out.println("sum: " + sum);
    

    Esto dará como salida la suma con la misma precisión que las entradas:

    sum: 1637208584795307
    

Comments are closed.