begin process at 2012 02 15 03:40:39
  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...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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 : 3,791 sec (3)

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