![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
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
|
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|