Bien. He estado golpeando mi cabeza contra la pared durante 2 horas tratando de descubrir por qué en el mundo double answer = 364/365;
me está diciendo que answer
es 0. O cualquier otra combinación de doble para el caso, solo está truncando el decimal y yo simplemente no No sé por qué. ¡¡¡Por favor ayuda!!!Error al utilizar Double type en Java ... esto tiene que ser tan simple, estoy casi avergonzado lo estoy preguntando aquí
Respuesta
364/365 realiza la división de enteros (trunca el decimal).
Pruebe double answer = 364.0/365;
para forzarlo a realizar la división de punto flotante.
Algo así como:
double days_in_year = 365;
double answer = 364/days_in_year;
funcionaría así, ya que uno de los operandos no es un entero.
Necesita hacer doble división. En este momento, Java lo interpreta como una división entera y devuelve el int
truncado.
Lo que necesita es:
double answer = 364/365.0;
o
double answer = 364/(double) 365;
Usted está tomando un tipo int (364) y dividiendo por otro tipo int (365) - la respuesta va a ser un int. Esto se almacena en una respuesta de tipo doble. Se podría hacer lo siguiente:
double answer = 364d/365d;
Más información aquí:
+1 para usar el sufijo d, que es mucho más agradable (en mi humilde opinión) que agregar un .0 al final o usar un reparto explícito, como sugieren todas las otras respuestas. – Cowan
La razón es que el tipo predeterminado de literales enteros en Java es int
y todo el resultado de todo int
arithemetic basado es tipo devuelto a int
. Por lo tanto, aunque su respuesta es 0,997, cuando se typecasted vuelta se convierte en 0:
(int)0.997 = 0
para que pueda hacer la siguiente manera:
364.0/365.0
o
((float)364)/365
- 1. ¿Estoy creando una pérdida de memoria aquí?
- 2. Estoy desconcertado aquí sobre awk, sed, etc.
- 3. Django-mptt ¿Tiene errores o lo estoy haciendo mal?
- 4. NStimer: ¿qué estoy haciendo mal aquí?
- 5. ¿Estoy implementando este simple contrato incorrectamente?
- 6. jquery selector strangeness - ¿Es esto un error o lo estoy haciendo mal?
- 7. diseño de iOS; No lo estoy obteniendo
- 8. ¿Es una mala práctica de Javascript lo que estoy haciendo aquí?
- 9. Pruebas unitarias DAO, ¿lo estoy haciendo bien?
- 10. NSDateFormatter, ¿estoy haciendo algo mal o es esto un error?
- 11. ¿Por qué ConcurrentBag <T> es tan lento en .Net (4.0)? ¿Lo estoy haciendo mal?
- 12. Pruebas unitarias: ¿Lo estoy haciendo bien?
- 13. ¿Estoy utilizando Java PooledConnections correctamente?
- 14. ¿Es este código Java válido? Mi profesor dice que sí, pero realmente no estoy tan seguro
- 15. ¿Es imposible hacer que un juego de Android no tenga problemas? Me estoy volviendo loco aquí
- 16. JavaScript, no tengo idea de lo que estoy haciendo
- 17. NSTimer con bloque - ¿Lo estoy haciendo bien?
- 18. Rspec: Debería ser (esto o lo otro)
- 19. ¿Estoy en lo cierto al pensar que este fragmento es O (n^3)?
- 20. Redondeando al número entero más cercano .... estoy haciendo trampa o es esto más que adecuado
- 21. .lib error cuando estoy usando un dll?
- 22. Validadores asincrónicos de validación no autorizada: ¿Esto es un error o estoy haciendo algo mal?
- 23. Estoy intentando utilizar un print.css para imprimir una div por página, y yo estoy fallando
- 24. El análisis de código se queja de que no estoy eliminando objetos. ¿Que esta mal aquí?
- 25. IoC - Unity, cómo funciona RegisterInstance, ¿Estoy en lo cierto?
- 26. Error de ScriptResource: ¿estoy siendo pirateado?
- 27. ¿Estoy utilizando IRepository correctamente?
- 28. ¿Un controlador con múltiples modelos? ¿Estoy haciendo esto correctamente?
- 29. Git me da un error "Permiso denegado" al escribir archivos que estoy tirando
- 30. ¿Puede "esto" ser nulo en Java?
Hey gracias. Eso fue realmente simple, ¡pero ahora lo sé! – Jeff
Feliz de ayudar. :) – Sapph