Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FabioCarpi

"0000" == "0e00"

Recommended Posts

Estava fazendo uns testes pra tentar entender como funciona a rede bitcoin e me deparei com um problema...

Porque o PHP acha que 0000 é igual a 0e00?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque o PHP vai processar a string como um numeral até o primeiro caractere inválido, no caso a letra e.

 

0000000... é sempre igual a 0.

 

Se quiser uma comparação estrita, utilize o http://au.php.net/manual/en/language.operators.comparison.php'>operador de identidade

Compartilhar este post


Link para o post
Compartilhar em outros sites

O PHP está fazendo cast automático para um número provavelmente, por isso ele é uma linguagem fracamente tipada.

 

No primeiro caso, você está usando um número escrito de forma comum/literal. Já na segunda, você está usando notação E, que é uma forma de notação científica usada em calculadoras e em linguagens de programação para representar números grandes.

 

Se você quiser comparar com strings, use ===.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O PHP está fazendo cast automático para um número provavelmente, por isso ele é uma linguagem fracamente tipada.

 

No primeiro caso, você está usando um número escrito de forma comum/literal. Já na segunda, você está usando notação E, que é uma forma de notação científica usada em calculadoras e em linguagens de programação para representar números grandes.

 

Se você quiser comparar com strings, use ===.

 

Enrico, também pensei que fosse uso de notação padrão exponencial, porém, N^0 = 1. A reposta seria cabível se ele estivesse perguntando porque dá diferente e não igual.

 

 

0 !== 0e0
1 === Ne0

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.