Boolean

Amigos,
Como no seguinte resultado vai retornar o valor “zero” e não o “cinco” também ? não entendi o porque !

 if(-5.0 == 5.0)
      {
        System.out.println(" cinco ");
      }
      if(-0.0 == 0.0)
      {
        System.out.println(" zero ");
      }

Obrigado.

deve ser porque -0 = 0 :stuck_out_tongue:
matematicamente falando =)

Não existe zero negativo…

Creio que -0 seja uma ‘formalidade’. Porque como um professor me disse uma vez: não há zero negativo nem positivo! Há um zero apenas.

Então -0 é igual a 0 ou +0 porque matematicamente só há um zero, que não é nem positivo nem negativo. O zero é ‘neutro’.

é como o pessoal falou acima -5 existe porem -0 nao existe entao -0 e 0 dar no mesmo :smiley:

[quote=GiancarloBraga]Creio que -0 seja uma ‘formalidade’. Porque como um professor me disse uma vez: não há zero negativo nem positivo! Há um zero apenas.

Então -0 é igual a 0 ou +0 porque matematicamente só há um zero, que não é nem positivo nem negativo. O zero é ‘neutro’.[/quote]

Hum, mas Java não trabalha com números “matemáticos”, e sim com números de ponto flutuante. Com números de ponto flutuante, é possível definir 3 números:
NaN - algo que não é um número (exemplo: divisão de 0 por 0).
INFINITY e -INFINITY - o resultado da divisão por zero

Para a maior parte das coisas, 0.0 == -0.0. Mas há um caso em que 0.0 e -0.0 dão resultados diferentes:

class ZeroZero {
    public static void main(String[] args) {
        // Isto prova que o Java sabe a diferença entre +0.0 e -0.0, 
        // mas só a usa quando estritamente necessário. 
        double z1 = 0.0;
        double z2 = -0.0;
        System.out.println (z1 == z2); // true como esperado
        System.out.println (1.0 / z1); // Imprime +Infinity
        System.out.println (1.0 / z2); // Imprime -Infinity - isso prova que existe "-0.0"
    }
}

Bom saber dessas coisas!
Obrigado pela informação thingol.