begin process at 2010 03 17 06:16:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Débutant(e)

 > 

JAVA ne sait pas faire d'addition


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

JAVA ne sait pas faire d'addition

lundi 29 mai 2006 à 23:27:07 | JAVA ne sait pas faire d'addition

Philou1789

Au secours je ne m'en sors pas Java ne sais pas calculer ou quoi !!!

Mon code
double A = 84.4;
double B = 53.2;
double C = A + B;
System.out.println("Tot="+C);
Le resultat:
Tot=137.60000000000002


Et pire encore :
regardez moi ca
double A = 84.4;
double B = 53.2;
double C = A + B;
if (C==137.60000000000002)
System.out.println("Tot 1="+C);
else
System.out.println("Tot 2="+C);


Et voilà la réponse:
Tot 1=137.60000000000002


AU SECOURS

Phil
mardi 30 mai 2006 à 00:57:14 | Re : JAVA ne sait pas faire d'addition

bouba

Salut, ce problème ne vient pas de Java, ce comportement a lieu avec n'importe quel langage, il vient des méthodes de calcul utilisées par les CPU sur les nombres flottants. Par exemple en C on obtient: #include int main() { double a,b,c; a = 53.2; b = 84.4; c = a + b; printf("%.30f", c); } A l'exécution le même problème qu'en Java (d'ailleur ce n'est pas un problème) bouba@debian:~/tmp/test$ ./main2 137.600000000000022737367544323206 bouba@debian:~/tmp/test$ La seule solution que tu as c'est de perdre un peu de précision. C *= 100000; C = ((int)C)/1000000.; Voilà, bonne chance. Bouba
jeudi 1 juin 2006 à 10:59:48 | Re : JAVA ne sait pas faire d'addition

shaiulud

La norme utilisé en Java est "IEEE 754-1985" ( standard de réprésentation
des nombres flottants en binaire ).
Il ne faut pas oublier que le CPU travaille en binaire et nous en base 10.


Voici quelques liens pour information :
http://java.sun.com/developer/JDCTechTips/2003/tt0204.html#2
http://docs.sun.com/source/806-3568/ncg_goldberg.html
http://www.javaworld.com/javaworld/jw-06-2001/jw-0601-cents.html
dimanche 4 juin 2006 à 20:25:27 | Re : JAVA ne sait pas faire d'addition

nimatik

il suffit de caster le resultat
 double A = 84.4;
 double B = 53.2;
 double C = A + B;
 System.out.println("Tot="+(float)C);


Cette discussion est classée dans : java, tot, system, out, double


Répondre à ce message

Sujets en rapport avec ce message

java et SAX parser xml [ par kungouf ] bonjour a tousj'utilise le parser SAX en java pour recuperer des donnees provenant d'un fichier xml, et mon probleme est le suivant:j'ai un plantage a Compatibilité MSVM et JAVA [ par EricW123 ] Bonjour,j'ai développé un applet java à partir de la SDK 1.5.0.C'est un client TCP/IP qui affiche des données que l'on lui envoie. L'application fonct acces refuse à la copie [ par nahzhir ] BonjourJe suis en train de crée une class qui copier et colle un fichier avec cette methode : public static<FONT siz Executer une commande linux depuis java [ par nicola2s ] Salut les gars, je voudrais executer une commande linux, depuis un prog java: j'ai utilisé Runtime et Process. Pour l'exemple g pris echo comme comman Debutant java sur netbeans 5.0 [ par sourrisseau ] Bonjour tout le monde !!!!  Je me lande dans Java a l'aide de la plate forme netbeans 5.0 . J'ai egalement acheté Java 2 pour le nuls et je me suis la Serveur echo [ par wariom ] Bonjour, Voila, je voudrais faire un serveur echo mais j'ai des problemes avec les ObjectInputStream et companie <img src="http://www.developpez.net/f Regex [ par lnp ] Salutà tous,J'ai un fichier CSV structurer ainsi : "Titre","Prénom","Nom"... Et le problème est que chaque champ est compris entre guillements ?Voilà afficher base de donnée sql dans une Jtable [ par Snyve ] Bonjour à tous !Je suis un débutant en java. J'utilise Netbeans.J'ai créer un programme java qui récupère les informations d'une base de donnée et les Ecriture dans un fichier [ par Darklecon ] Darklecon


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales