The UNIX and Linux Forums  
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.

Go Back   Die UNIX-und Linux-Foren > Top Foren > High-Level-Programmierung
.
Google unix.com



High-Level-Programmierung Post Fragen zu C, C + +, Java, SQL, und andere Programmiersprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Diskrepanz in / var / adm / messages sundar3350 SUN Solaris 15 03-11-2009 11:23 AM
Wie bekomme ich eine HTML-Vergangenheit:: Einrichtungen Diskrepanz auf einer RPM? jjinno UNIX for Dummies Questions & Answers 2 08-07-2007 12:39 PM
Vsftp Kuriosität Spetnik UNIX for Dummies Questions & Answers 7 04-28-2004 02:58 PM
NIS-Login Diskrepanz Henrik UNIX for Dummies Questions & Answers 11 04-08-2003 09:17 AM
So Passwort Oddity jacobsa UNIX for Dummies Questions & Answers 4 05-30-2002 07:50 AM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 06-13-2009
Trones Trones is offline
Registrierte Nutzer
  
 

Join Date: Dezember 2008
Beiträge: 5
Java doppelten Abzug Kuriosität (nicht die üblichen Rundungsregeln Diskrepanz)

Ich habe schon über ein Java-Tutorial, und lief in einigen Fremdheit in diesem kleinen Beispiel ...

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();
        }
    }
}
Die Rückkehr ist merkwürdig - wenn ich die Ergebnisse, die ich ein kleines Programm, das eine Reihe von abgezogen Literal Fließkomma-Zahlen, die alle mit der normalen Binär-zu Dezimal-Wunderlichkeit (1,002 - 1,001 \u003d .000999999997), aber wenn ich die oben Code, bekomme ich was unter:

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

....
Ich bin mir nicht sicher, ob es etwas, was ich bin und was falsch ist, verursachen. Ich habe ganz und hast alles, was ich gefunden habe, sind die Menschen gefragt, die Hardware-Beschränkungen von Floating-Point-Arithmetik. Jede Hilfe wäre sehr geschätzt.

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

Nachdem ich es hier ich nur, dass ich nicht unter Berücksichtigung der wissenschaftlichen Notation ... Boy zu fühle ich mich jetzt dumm
 

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 05:22 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0