Java flutuar e comparação dupla
O flutuador e os tipos duplos são dois formatos diferentes para representar números reais em java. Ambos são chamados de tipos de ponto flutuante. Um número real em matemática é um número inteiro e uma parte decimal. Por exemplo, 23.75 é um número real. A parte do número inteiro é 23 e a parte decimal é 75. Se a parte decimal for “.0 ”, o número real é 23.0, então o número real é um número inteiro. Números inteiros são um subconjunto de números reais. Uma série de números reais, do menor ao maior valor teria inteiros dentro. Por exemplo, o intervalo de números reais de -3.5 a +3.5 tem os números inteiros, -3, -2, -1, 0, +1, +2 e +3, dentro. Não se esqueça que a parte decimal de um número real é uma fração adequada. Por exemplo .75 é 3/4.
Como visto na faixa acima, que é de -3.5 a +3.5, um número pode ser positivo ou negativo. Um número sem o sinal é chamado de número absoluto. O número absoluto de -2.5 é 2.5. O número absoluto de +2.5 é 2.5. O número absoluto é o número positivo.
O número, 23.75 podem ser representados por um flutuador ou um duplo. Então, como acontece a diferença? A resposta para isso pode ser apreciada tentando responder à pergunta: quantos números existem entre 2 e 3, inclusive (incluindo 2 e 3)? De fato, o número de números entre 2 e 3 é infinito. Portanto, números de flutuação ou dupla são um conjunto de números em um intervalo, pois números infinitos não podem ser determinados. Para o mesmo intervalo, existem mais números duplos, com intervalos mais curtos entre cada par consecutivo de números.
Este artigo compara carros alegóricos e duplos em Java, começando com um tipo de imaginário correspondente chamado flot e duvid.
Tipos correspondentes imaginários
Vamos desenvolver nossos próprios tipos correspondentes imaginários chamados flot e duvidos, correspondentes a flutuar e dobrar.
FLOT
Com o tipo de flot, vamos ter três números entre 2 e 3. Vamos ter os números, 2.25, 2.5 e 2.75. Portanto, os únicos números de flot entre 2 e 3 inclusive são 2, 2.25, 2.5, 2.75 e 3. Como pode ser visto nesse intervalo, o menor número absoluto em todo o conjunto de flotas é 0.25, que também é a diferença entre dois números consecutivos. (Para ter os números de 3 a 4, continue a adicionar 0.25).
Duv
Com o tipo Doub, tenhamos sete números entre 2 e 3. Vamos ter os números, 2.125, 2.25, 2.375, 2.5, 2.625, 2.75, 2.875. Portanto, os únicos números de duplos entre 2 e 3 inclusive são 2, 2.125, 2.25, 2.375, 2.5, 2.625, 2.75, 2.875 e 3. Como pode ser visto nesse intervalo, o menor número absoluto em todo o conjunto de duplas é 0.125, que também é a diferença entre dois números consecutivos. (Para ter os números de 3 a 4, continue a adicionar 0.125). Este número é menor que 0.25 para flot.
Margem de erro
Observe que números consecutivos para DOUB são menores em intervalo do que números consecutivos para flot.
O número exato de números dentro de uma faixa de fracassos ou duplos não pode ser determinado, pois todos os números do intervalo são infinitos. Portanto, há uma margem de erro para qualquer número fornecido, incluindo números inteiros, como 2 ou 3, para qualquer um desses tipos.
Para as flots, para qualquer número fornecido, o número é preciso para dentro, + ou - 1/4 (i.e. 0.25). Então, um número de flot de 2.5, na verdade está em algum lugar entre 2.375 e 2.675. Um número de flota de 3, na verdade está em algum lugar entre 2.875 e 3.125. O número real (precisão) nunca pode ser determinado. Mesmo um número inteiro de um tipo de flot é um número que não é muito certo.
Para Doubs, para qualquer número fornecido, o número é preciso em + ou -1/8 (0.125). Então, um número de dúvidas de 2.5, na verdade está em algum lugar entre 2.4375 e 2.5625. Um número de dúvidas de 3, na verdade está em algum lugar entre 2.9375 e 3.0625. O número real (precisão) nunca pode ser determinado. Mesmo um número inteiro de um tipo de dúvida é um número que não é muito certo. Observe que um número de dúvidas tem mais precisão do que um número de flot.
Os tipos flutuantes e duplos em Java são correspondentemente semelhantes a esses tipos de flot imaginários e duplos. Seus intervalos são correspondentemente menores.
Comparação de flutuação e dupla apropriada em java
Float é conhecido como um único tipo de precisão. O dobro é conhecido como um tipo de dupla precisão. Um número de flutuação ocupa 32 bits (quatro bytes). Um número duplo ocupa 64 bits (oito bytes). Ambos os números representam números reais em Java, com o tipo duplo com menos intervalos entre números consecutivos. Ambos os tipos nunca podem dar um número exato. No entanto, o duplo tem menos tolerância que o flutuador. Ambos os tipos são realmente baseados em formatos de IEEE 754.
O alcance do tipo duplo, desde sua extremidade negativa até a extremidade positiva, é mais ampla que a faixa do tipo de flutuação, da extremidade negativa até a extremidade positiva.
Flutuador
O menor número positivo normalizado do tipo de flutuação é 2-126. O maior número positivo para o flutuador é (2 - 2-23) × 2127. O conjunto de números de flutuação pode ser imaginado como adicionando 2-126 repetidamente do fim negativo ao seu fim positivo.
Um valor do número de flutuação deve terminar com 'f', como mostra o seguinte programa:
classe pública theClassA saída é:
23.75
Dobro
O menor número positivo normalizado do tipo duplo é 2-1022, menor que o de flutuação. O maior número positivo para o duplo é (2 - 2-52) × 21023. O conjunto de números duplos pode ser imaginando como adicionando 2-1022 repetidamente desde a extremidade negativa, ao seu fim positivo.
Um valor de número duplo não termina com 'f' ou 'd' ou 'r', como mostra o seguinte programa:
classe pública theClassA saída é:
23.75
mas com menos margem de tolerância, do que com o flutuador acima.
Flutuar e duplo são tipos primitivos. E assim, nenhuma aula precisa ser importada para o programa pelo programador para que eles sejam usados.
Nan
Nan significa não-número. Considere o seguinte programa:
classe pública theClassO programa compila sem nenhum problema, mas emite a seguinte mensagem de erro, quando executado:
Exceção no tópico "principal" java.Lang.Arithmeticexception: / por zero
em TheClass.Principal (TheClass.Java: 3)
A operação inválida aqui é, dividida por zero. O resultado é NAN, embora uma mensagem de erro tenha sido emitida. Isso é aplicável a flutuar e dobrar. Outras operações inválidas, resultam em NAN.
Conclusão
Float é conhecido como um único tipo de precisão. O dobro é conhecido como um tipo de dupla precisão. Um número de flutuação ocupa 32 bits (quatro bytes). Um número duplo ocupa 64 bits (oito bytes). Ambos os tipos representam números reais em Java, com o tipo duplo com menos intervalos entre números consecutivos e é mais preciso.
Chrys