The UNIX and Linux Forums  

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > High Level Programming
.
google unix.com



High Level Programming Posez vos questions à propos de C, C + +, Java, SQL, et d'autres langages de programmation ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Les anomalies dans / var / adm / messages sundar3350 SUN Solaris 15 03-11-2009 11:23 AM
Comment puis-je obtenir un passé HTML:: divergence sur les entités d'un RPM? jjinno UNIX pour les nuls Questions et réponses 2 08-07-2007 01:39 PM
Vsftp curiosité Spetnik UNIX pour les nuls Questions et réponses 7 04-28-2004 03:58 PM
NIS login écart Henrik UNIX pour les nuls Questions et réponses 11 04-08-2003 10:17 AM
Mot de passe Su Oddity jacobsa UNIX pour les nuls Questions et réponses 4 05-30-2002 08:50 AM

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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 06-13-2009
Trônes Trones is offline
Registered User
  
 

Join Date: Dec 2008
Messages: 5
Java double soustraction curiosité (ce n'est pas le décalage habituel d'arrondi)

Je suis passé par une java tutorial, et a couru à travers une étrangeté dans ce petit exemple ...


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

Le retour est étrange - quand j'ai vu les résultats, j'ai écrit un petit programme qui soustrait un certain nombre de littérale des nombres à virgule flottante, le tout dans la normale binaire en décimal oddness (1,002 - 1,001 \u003d .000999999997), mais quand je cours le plus haut code, je reçois ce qui est ci-dessous:


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

....

Je ne sais pas si c'est quelque chose que je fais de mal ou ce qui est à l'origine il. J'ai cherché sur tous et tout ce que j'ai trouvé les gens demandent à propos du matériel limites de l'arithmétique en virgule flottante. Toute aide serait grandement appréciée.

----- Message ----- Mise à jour

Après avoir vu ce affichés ici je viens de réaliser que je n'étais pas en tenant compte de la notation scientifique ... Boy de maintenant je me sens stupide
  #2 (permalink)  
Old 06-14-2009
CRGreathouse CRGreathouse is offline
Registered User
  
 

Date d'inscription: mars 2009
Messages: 105
Oui, vous l'avez trouvé. C'est juste l'habitude d'erreur d'arrondi, affiché à un trop grand nombre de décimales.
Reply

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 12:16 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0