The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > High Level Programmering
.
google unix.com



High Level Programmering Post spørsmål om C, C + +, Java, SQL og andre programmeringsspråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Uoverensstemmelse i / var / ADM / meldinger sundar3350 Sun Solaris 15 03-11-2009 11:23
Hvordan får jeg forbi en HTML:: enheter avvik på en RPM? jjinno UNIX for Dummies Spørsmål og svar 2 08-07-2007 01:39
VSFTP særhet Spetnik UNIX for Dummies Spørsmål og svar 7 04-28-2004 03:58
NIS login avvik Henrik UNIX for Dummies Spørsmål og svar 11 04-08-2003 10:17
Su Passord særhet jacobsa UNIX for Dummies Spørsmål og svar 4 05-30-2002 08:50

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 06-13-2009
Trones Trones is offline
Registrert bruker
  
 

Bli Dato: desember 2008
Innlegg: 5
Java dobbelt subtraksjon særhet (ikke vanlig avrunding avvik)

Jeg har gått gjennom en java tutorial, og løp over noen strangeness i dette lille eksempelet ...


Code:
 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();
        }
    }
}

Avkastningen er rart - da jeg så resultatene, skrevet jeg et lite program som trekkes en rekke bokstavelig flyttall tall, alle med normal binær til desimal oddness (1,002 til 1,001 \u003d ,000999999997), men når jeg kjører over kode, får jeg hva som er nedenfor:


Code:
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

....

Jeg er ikke sikker på om det er noe jeg gjør galt eller hva som forårsaker den. Jeg har søkt overalt og alt jeg har funnet er folk som spør om maskinvaren begrensninger floating point aritmetikk. Eventuelle hjelpe ville være verdsatt.

----- Innlegg Update -----

Etter å ha sett den postet her jeg innså jeg var ikke tar hensyn til vitenskapelig notasjon ... Gutt å jeg føler meg dum nå
  #2 (permalink)  
Old 06-14-2009
CRGreathouse CRGreathouse is offline
Registrert bruker
  
 

Bli Date: Mar 2009
Innlegg: 105
Jepp, du fant den. Det er bare de vanlige roundoff feil, vises til altfor mange desimaler.
Reply

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 09:20.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0