0

introducir la descripción de la imagen aquí

saludos compañeros, tengo una duda con respecto a la imagen que les he pasado. la pregunta es: porque tengo que declarar int 2 veces a la variable ganancia? al principio la tenia asi: int ganancia = inversion * 0.02 ; pero netbeans me marcaba un error y una de sus sugerencias fué esta.

Noel Tejeda
  • 27
  • 1
  • 4
  • 1
    Cuál era el mensaje de error que te daba netbeans? Por qué compartes código como imágen? Dónde está carmen sandiego? :P Recuerda que el código se comparte como texto; leer ese código es difícil dependiendo de cada persona y se hace difícil ayudarte. Estoy seguro que el mensaje de error de netbeans era autoexplicativo; suelen ser errores en tiempo de compilación – Alfabravo Feb 03 '22 at 16:23
  • tu IDE te reconoce que `inversion*0.02` te va generar un dato de tipo `double` (marca error) ahora ese valor generado esta asociado a `ganancia` que es de tipo `int` entonces tu IDE te surgiere `(int)(inverision*0.02)` a modo de convertir el dato `double` en `int` – Dramaturgo Feb 03 '22 at 16:24

1 Answers1

2

No sabemos cómo estaba tu código antes, pero es seguro que lo que estás haciendo ahí es un casting. Estás transformando algo (inversion * 0.02) en entero para podérselo asignar a ganancia.

La cosa es que, el resultado de hacer esa multiplicación es seguro que no va a ser un entero (1, 2, 3, 4, 5, 6,... 100,...) y tiene pinta de ser un double o algún otro tipo de dato que maneje las cifras significativas. No tenías el casting (el (int) a la derecha del signo =) así que intentabas asignarle un double a un int y pues, hueco circular y cubito cuadrado, no encaja.

Como está tu programa, las estás ignorando y estás perdiendo precisión (estás convirtiendo 10.12 en 10). Que netbeans te sugiera algo para que compile no significa que ese deba ser el código en tu programa para tu problema. Posiblemente debas trabajar con double o, mejor aún, con BigDecimal.

Pásate por esta pregunta y su respuesta

Alfabravo
  • 7,352
  • 5
  • 21
  • 31