Questão Math

É a última por hoje, prometo.

What will happen if you invoke the following method?

public void check() { System.out.println(Math.min(-0.0,+0.0)); System.out.println(Math.max(-0.0,+0.0)); System.out.println(Math.min(-0.0,+0.0) == Math.max(0.0,+0.0)); }

A- prints -0.0, 0.0 and false.
B- prints -0.0, 0.0 and true.
C- prints 0.0, 0.0 and false.
D- prints 0.0, 0.0 and true.

vou na letra D,

Nao sei ao certo, mas acho q o retorno desses metodos eh 0.0,
com sinal ou sem sinal !

mas tenho la minhas duvidas …

vá la que seja!!! :slight_smile:

Eu acho q a D eh muito obvia… vou de B :slight_smile:

concordo, essa é casca de banana, mas eu iria de B, acho q será impresso -0, mas qdo se compara -0 e 0 é true :oops:

errei … carai …
compilei e vi aqui… :lol:

Mas depois fui ver … o java considera a ordem seguinte para ponto flutuante…
-Infinity => FraçõesNegativas(-1.3) => -0.0 => +0.0 => FraçõesPositivas(1.4) => Infinity

Agora… na comparação (-0.0 == 0.0) retorna true … Isso é lógico.

Mas não sabia que tinha essa ordem … e por isso ele o Math.min e o Math.max, verifica esses valores nessa ordem , retornando de acordo…

Blza… boa questão!!!

Sim, é a B.

Não vejo lógica nisso.

Se min(-0.0, +0.0) retorna um, e max(-0.0, +0.0) retorna outro, na minha lógica eles são diferentes.
Aí você compara e os dois são iguais…

Schuenemann
concordo com sua lógica! apezar que na minha deveria retornar 0.0 para qualquer comparação! No meu entendimento qualquer expressão que retorna " -0.0 " é no minímo estranho, sendo que matemáticamente 0 é um número de sinal nulo!

É por isso que dizem que um certificado SCJP não é necessáriamente um excelente programador JAVA, mas necessáriamente conhece as Obscuridades do JAVA hehe

essa é mais uma delas…

[quote=“sens”]Schuenemann
concordo com sua lógica! apezar que na minha deveria retornar 0.0 para qualquer comparação! No meu entendimento qualquer expressão que retorna " -0.0 " é no minímo estranho, sendo que matemáticamente 0 é um número de sinal nulo!

É por isso que dizem que um certificado SCJP não é necessáriamente um excelente programador JAVA, mas necessáriamente conhece as Obscuridades do JAVA hehe

essa é mais uma delas…[/quote]

Caro Sens, é por isso que existe a SCJP, são esses detalhes que podem
fazer a diferença, entre alguém que acha que sabe JAVA, e os que sabem realmente.
Você assim como eu, e outros que estão estudando pra conhecer esses
detalhes da linguagem que irá fazer o diferencial.
Observe, que a SCJP, prova que você conhece esses detalhes da linguagem, ser ou não bom programador ela não prova.
É lógico que essa relação do 0 ter sinal , não tem muito sentindo , porque
você , assim como eu, estamos acostumados com uma certa lógica.
É isso, não esqueça, a Certificação nos mostrará essas grandes curiosidades do JAVA!

Eu quero ver ela mostrar meu salário inchar.

[quote=“Schuenemann”]

Eu quero ver ela mostrar meu salário inchar.[/quote]

Meu caro, se es o que tu esperas, entaum desista da certificação. Ela só te garante (e olhe lá) não ficar desempregado. É ai que entra o papel do bom programador. Eu conheço um cara que programa em Delphi que ganha R$ 2000,00 e trabalha 6 horas por dia! e ele num é analista não, é somente técnico (programador puro). BOm mas isso é uma outra discurção

[]'s

Eu não falei sério :slight_smile:
Ainda que fosse assim, somente a SCJP seria muito pouco.

Falei isso porque ele disse:

E pensei comigo: “e desde quando me importo com essas curiosidades do java?”

Como alguém por aqui falou: “Hoje a certificação é um diferencial. Amanhã, será uma exigência. Vou esperar esse dia chegar pra correr atrás do tempo perdido?”

:grin:

qnd tu encontrar problemas de runtime no teu código e não saber oq fazer pra corrigir? :roll:

ele vai recorrer ao portal java, huahauhahuahua

[quote=“matheus”][quote=“Schuenemann”]
E pensei comigo: “e desde quando me importo com essas curiosidades do java?”
[/quote]

qnd tu encontrar problemas de runtime no teu código e não saber oq fazer pra corrigir? :roll:[/quote]

Eu não creio que um dia eu terei problemas com o uso de -0.0 e +0.0

[quote=“Schuenemann”]
Eu não creio que um dia eu terei problemas com o uso de -0.0 e +0.0[/quote]
É bem díficil, mas ninguém sabe o dia do amanhã!
E outra coisa, saber disso não quer dizer que você vá colocar no seu código essas maluquices… mas você pode dar manutenção em códigos
de terceiro que tenha… ou você pode prever que se escrever isso pode
resultar em runtime, ou não pode … etc…

Eu mesmo não gosto de programar usando instruções rotuladas, com break e continue , mas se um dia precisar … ou vir em algum código,
vou estar familiarizado com aquilo …

São esses pequenos detalhes que volto a dizer aqui que faz a diferença!