Foros del Web » Programación para mayores de 30 ;) » Java »

System.out.println(1/2); --> 0

Estas en el tema de System.out.println(1/2); --> 0 en el foro de Java en Foros del Web. Hola amig@s, ¿Alguien sabría explicarme porqué pasa esto? Código: public class Clase { public static void main(String[] args) { double division = 1/2; double suma ...
  #1 (permalink)  
Antiguo 23/05/2009, 19:40
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 18 años, 6 meses
Puntos: 1
Exclamación System.out.println(1/2); --> 0

Hola amig@s,

¿Alguien sabría explicarme porqué pasa esto?

Código:
public class Clase {
	
	public static void main(String[] args) {
		
		double division = 1/2;
		
		double suma = division + 1;
		
		System.out.println("1/2 = "+division); // devuelve: 1/2 = 0.0
		System.out.println("1/2 + 1 = "+suma); // devuelve: 1/2 + 1 = 1.0
		
	}
	
}
Perdí como 1/2 hora buscando el error por culpa de eso

ArgoN

Última edición por -=ArgoN=-; 23/05/2009 a las 19:49
  #2 (permalink)  
Antiguo 23/05/2009, 22:27
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: System.out.println(1/2); --> 0

Hola:

Si los números son enteros, la división es entera y sale sin decilmales. Por eso 1/2 da 0 (sin decimales). Para obtener los decimales, debes usar float o double. Si pones 1.0/2 ya te saldrá 0.5

Por cierto, ese 1/2 hora buscando el error ... ¿entero o float?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:58.