The UNIX and Linux Forums  
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.

Go Back   O UNIX e Linux Forum > Top Fóruns > Alto Nível de programação
.
google unix.com



Alto Nível de programação Post perguntas sobre C, C + +, Java, SQL, e outras linguagens de programação aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Discrepância em / var / adm / messages sundar3350 Sun Solaris 15 03-11-2009 11:23
Como faço para passar um HTML:: entidades discordância sobre um RPM? jjinno UNIX para Dummies Perguntas & Respostas 2 08-07-2007 12:39
VSFTP oddity Spetnik UNIX para Dummies Perguntas & Respostas 7 04-28-2004 02:58
NEI login discrepância Henrik UNIX para Dummies Perguntas & Respostas 11 04-08-2003 09:17
Su Senha oddity jacobsa UNIX para Dummies Perguntas & Respostas 4 05-30-2002 07:50

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 06-13-2009
Trones Trones is offline
Usuário
  
 

Join Data: dezembro 2008
Posts: 5
Java dupla subtração oddity (não é o habitual arredondamento discrepância)

Fui passando um tutorial java, e decorreu em toda a alguns estranhamento neste pequeno exemplo ...

Código:
 class SqrRoot {
    public static void main(String args[]) {
        double num,sroot,rerr,resquare;
        
        for(num = 1.0; num < 100.0; num++) {
            sroot = Math.sqrt(num);
            System.out.println("Square root of " + num + " is " + sroot);
            
            // compute rounding error
            resquare = (sroot * sroot);
            rerr = num - resquare;
            System.out.println("Rounding error: num + " - " + resquare + " = " + rerr);
            System.out.println();
        }
    }
}
O retorno é estranho - quando vi os resultados, me escreveu um pequeno programa que subtrai uma série de números literais de ponto flutuante, todos com o normal binário para decimal oddness (1,002 - 1,001 \u003d .000999999997), mas quando eu executar o referido código, fico com o que está abaixo:

Código:
Square root of 1.0 is 1.0
1.0 - 1.0 = 0.0

Square root of 2.0 is 1.4142135623730951
2.0 - 2.0000000000000004 = -4.440892098500626E-16

Square root of 3.0 is 1.7320508075688772
3.0 - 2.9999999999999996 = 4.440892098500626E-16

....
Não tenho certeza se é algo que estou fazendo errado ou o que está causando isso. Tenho pesquisado sobre todos e todas as pessoas que eu encontrei é perguntar sobre as limitações de hardware de ponto flutuante aritmética. Qualquer ajuda seria muito apreciada.

----- ----- Post Update

Depois de ver ele postado aqui eu percebi que não estava levando em conta a notação científica ... Menino para me sinto idiota agora
 

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 02:20.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0