The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > Hoog Niveau Programmering
.
google unix.com



Hoog Niveau Programmering Post vragen over C, C + +, Java, SQL, en andere programmeertalen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Discrepantie in / var / adm / messages sundar3350 SUN Solaris 15 03-11-2009 11:23
Hoe kom ik aan het verleden een HTML:: entiteiten discrepantie op een RPM? jjinno UNIX voor Dummies Questions & Answers 2 08-07-2007 12:39
Vsftp Oddity Spetnik UNIX voor Dummies Questions & Answers 7 04-28-2004 02:58 PM
NOS login discrepantie Henrik UNIX voor Dummies Questions & Answers 11 04-08-2003 09:17
Su Password Oddity jacobsa UNIX voor Dummies Questions & Answers 4 05-30-2002 07: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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 06-13-2009
Trones Trones is offline
Geregistreerde gebruiker
  
 

Join Date: december 2008
Posts: 5
Java dubbele aftrekken Oddity (niet de gebruikelijke afronding discrepantie)

Ik ben al gaan door een java tutorial, en rende een aantal vreemde in dit kleine voorbeeld ...

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();
        }
    }
}
Het rendement is vreemd - toen ik zag de resultaten, ik schreef een klein programma dat een aantal letterlijke floating point getallen, allemaal met het normale binair naar decimaal eigenaardigheid (1.002 tot 1,001 \u003d ,000999999997) afgetrokken, maar toen ik de hierboven code, krijg ik wat hieronder:

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

....
Ik ben niet zeker of het is iets wat ik verkeerd doe of wat de oorzaak is van het. Ik heb overal gezocht en alles wat ik heb gevonden is de mensen vragen over de hardware beperkingen van floating point rekenkunde. Alle hulp zou zeer gewaardeerd worden.

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

Na het zien van het hier wordt geplaatst Ik dacht dat ik besefte dat ik geen rekening gehouden met de wetenschappelijke notatie ... Jongen Ik voel me stom nu
  #2 (permalink)  
Old 06-14-2009
CRGreathouse CRGreathouse is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2009
Posts: 104
Yep, vond je het. Dat is gewoon de gebruikelijke roundoff fout, blijkt te veel decimalen.
Reply

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 02:36.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0