Pergunta

A pergunta que eu significava para perguntar em causa a mantissa, e não o expoente , e tem muito a ver com a pergunta que fiz no início da semana sobre " faltando" dígitos na soma de dois carros alegóricos negativos.

Uma vez que a mantissa tem uma precisão variável, como se dizer se uma transbordou configuração da precisão atual do mantissa? Ou, a partir do lado pró-ativa, como se pode dizer se a precisão mantissa estouro é provável?

Atenciosamente, Bruce.

Foi útil?

Solução

Existem alguns métodos numéricos para ver se você está indo para precisão perder, mas a linha inferior é que você precisa entender a definição de precisão melhor.

-4939600281397002,2812

e

-4939600281397002,2812000000000000

NÃO são o mesmo número.

Quando você adiciona

-2.234,6016114467412141

e

-4939600281397002,2812

juntos, o correta de saída terá apenas 20 dígitos de precisão, porque o adicional de 12 dígitos em menor número são sem sentido, uma vez que os 12 dígitos de tamanho similar no número maior são desconhecido . Você pode dizer que eles estão zero, mas se esse for o caso, então você deve declarar explicitamente que eles sejam como tal, e usar um sistema de numeração que pode lidar com isso -. O computador não é bom para entender intenções implícitas

Quanto detectar quando você está indo para ter este problema, tudo que você precisa fazer é descobrir se eles têm o mesmo expoente (assumindo uma mantissa normalizada +/- 1 ou equivalente binário similar). Se eles não são normalizadas, então você vai precisar para normalizá-los para comparar, ou usar uma comparação um pouco mais complexo com o expoente.

Precisão e precisão não são a mesma coisa ...

-Adam

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top