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.

Cambiar los espacios decimales dobles en función del valor entero.

Quiero cambiar los espacios decimales de un double, dependiendo del valor entero que use. Descubrí que puedo cambiar los espacios decimales “manualmente” cambiando a 10 o 1000, y así sucesivamente, pero no sé cómo lograr esto, aparte de cambiar esos valores en el código.

Mi segunda pregunta es cómo redondear los valores double, por ejemplo, 19.657 hasta 19.66, o 19.652 hasta 19.65.

Nota:
– SIN el uso de importaciones y solo el paquete predeterminado

Utilizo Java con Eclipse como mi IDE.

Gracias de antemano por tu esfuerzo 🙂

double x = 19.657821456;
int y = 3;  

x = x * 10; 
x = (double)((int) x);
x = x / 10;
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para cambiar el número de decimales de un número de tipo double basado en un valor entero, puedes usar el siguiente código:

    double num = 10.123456;
    int decimalPlaces = 3;
    
    double powerOfTen = Math.pow(10, decimalPlaces);
    double roundedNum = Math.round(num * powerOfTen) / powerOfTen;
    
    System.out.println(roundedNum); // Salida: 10.123
    

    Este código multiplica el número dado por 10 elevado a la potencia del número de decimales deseado, lo redondea a un número entero y luego lo divide por la misma potencia de diez. Esto resulta en un número double con el número de decimales deseado.

    Para redondear un valor double a un número específico de decimales, puedes utilizar el mismo enfoque que se mostró anteriormente, pero modificando el método de redondeo utilizado. Por ejemplo:

    double num = 19.657;
    int decimalPlaces = 2;
    
    double powerOfTen = Math.pow(10, decimalPlaces);
    double roundedNum = Math.floor(num * powerOfTen + 0.5) / powerOfTen;
    
    System.out.println(roundedNum); // Salida: 19.66
    

    Este código multiplica el número dado por 10 elevado a la potencia del número de decimales deseado y luego le suma 0.5 antes de redondearlo hacia abajo. Esto resulta en que el número se redondee hacia arriba o hacia abajo al entero más cercano. Al dividir nuevamente por la potencia de diez, obtenemos un número double con el número de decimales deseado. En el ejemplo anterior, el número se redondea hacia arriba a 19.66. Para redondear hacia abajo, simplemente puedes usar Math.ceil() en lugar de Math.floor().

Comments are closed.