Eu quero calcular o valor máximo de flutuação (digamosf64) iterativamente. Eu estava pensando em multiplicar algum número como 1,0 vezes 2 até chegar ao infinito, mas não vai me dar um número exato. Algo como adicionar macheps também não funciona porque é muito lento. Tenho certeza de que você precisa aumentar / diminuo o divisor / multiplicador em alguma coisa cada vez que você atinge o infinito, mas não sei como fazer.
Respostas:
0 para resposta № 1Biblioteca padrão da sua linguagem de programaçãodeve fornecer uma constante que representa os limites numéricos de seus tipos. Se você quiser tentar um loop: você deve ler cuidadosamente a documentação para erros (incluindo perda de precisão e estouro) e lembrar que o maior número representável não é apenas o maior expoente, mas o maior expoente multiplicado pelo maior mantissa.
Dito isso, calcular as potências de 2 até obter um erro e, em seguida, adicioná-las da maior para a menor até obter um erro, deve funcionar.