Ir para conteúdo

POWERED BY:

Arquivado

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

SavioRaires

Divisão errada

Recommended Posts

Você não especificou qual tipo de dados você está usando, inteiro ou ponto flutuante.

 

 

O que te faz pensar que isso é um erro? Por que é um problema?

 

Por que não existe -0.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas é claro que existe.

 

No padrão IEEE 754, -0 pode resultar de operações como a divisão de uma constante pequena por outra constante grande de sinal oposto, ou de uma constante qualquer por infinito de sinal oposto. De forma geral, representa qualquer valor negativo muito pequeno e próximo de 0.

 

Isto também é discutido na definição da linguagem em diversos trechos, incluindo 6.2.6.2p2, 6.2.6.2p3 e o rodapé 276, que diz:

 

 

 

The results of all floating conversions of a negative zero, and of negative values that round to zero, include a minus sign.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um padrão nunca é alterado. Se for alterado, não é mais aquele padrão.

 

Na matemática, uma constante dividida por infinito (positivo ou negativo) tem valor 0. O que seria diferente é que uma constante muito grande dividindo outra relativamente pequena tem resultado diferente de 0, potencialmente negativo, dependendo do sinal dos operandos. Como a aritimética de ponto flutuante trabalha com quantidade de memória fixa, diversos valores não podem ser representados (por exemplo, 0.1 + 0.2 != 0.3), e adota-se, também, 0 ou -0 como resultado nesses casos.

 

Ainda assim, o autor do tópico não explicou por quê é problema que o resultado seja -0.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Como nunca? Imagino que você não entendeu o que estou dizendo. Basta um pequeno esforço para alterar um padrão.


Talvez tenha-me expressado mal, um padrão pode ser suprimido, seus resultados alterados.

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.