Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2529 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  convertion double to int -- ATTENTION SUBTILITÉ

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

convertion double to int -- ATTENTION SUBTILITÉ

n°1894646
melissad87
Posté le 12-06-2009 à 20:24:16  profilanswer
 

Bonjour, je cherche à convertir un double en int,
Mais je ne veux pas faire un
 
double d = 7.54;
int i = (int)d;
 
ou
 
Double d = 7.54;
int i = d.intValue();
 
mon double découle d'une racine carré sur un entier. en fait ce que je cherche à faire c'est de valider si un nombre est un carré parfait. Donc je ne veux pas "caster" en int ce qui arrondie ou tronque le nombre. Je veux lancer un erreur dans le cas ou mon double ne correspond pas à un entier
 
Math.sqrt(9) --> 3.0
Math.sqrt(7) --> 2.6457513110645907
 
donc le premier serait convertie et l'autre lancerais un message d'erreur...
Bref, convertir un double en int seulement et seulement si celui-ci ne détient pas de chiffre après la virgule...

mood
Publicité
Posté le 12-06-2009 à 20:24:16  profilanswer
 

n°1894650
masklinn
í dag viðrar vel til loftárása
Posté le 12-06-2009 à 20:42:55  profilanswer
 

%1


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1894652
melissad87
Posté le 12-06-2009 à 20:51:41  profilanswer
 

Haha, c'est pas fou, j'aime ça, merci!!!

n°1894653
melissad87
Posté le 12-06-2009 à 20:53:46  profilanswer
 

Mais j'ai une petite question dans ce cas, on m'a enseigner qu'un double ne sera jamais égale à un entier, cela va être un nombre très près d'un entier sans jamais en être un, donc:
Math.sqrt(9) --> 3.0
serait en fait:
3.0000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
00001
 
Dans ce cas est ce que je peux vraiment faire un modulo 1 dessus? :s

n°1894655
melissad87
Posté le 12-06-2009 à 20:56:15  profilanswer
 

Ça semble fonctionner, merci
J'ai l'habitude de programmer en C++ et non en java, il y a plusieurs subtilité entre le java et le C++, je crois que ceci n'aurais pas fonctionner en C++

n°1894660
masklinn
í dag viðrar vel til loftárása
Posté le 12-06-2009 à 21:08:50  profilanswer
 

melissad87 a écrit :

Mais j'ai une petite question dans ce cas, on m'a enseigner qu'un double ne sera jamais égale à un entier, cela va être un nombre très près d'un entier sans jamais en être un, donc:
Math.sqrt(9) --> 3.0
serait en fait:
3.0000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
00001
 
Dans ce cas est ce que je peux vraiment faire un modulo 1 dessus? :s


Oui, c'est surtout que sur un double (ou un flottant en général, float ou double) tu ne dois pas utiliser d'égalité, tu dois utiliser un epsilon (tu testes si la différence entre la valeur cherchée et la valeur trouvée est inférieure à un très petit nombre proche de 0).

melissad87 a écrit :

je crois que ceci n'aurais pas fonctionner en C++


parce qu'en C "%" ne fonctionne que pour les entiers. Mais la stdlib contient fmod qui permet potentiellement de le faire (à vérifier, je fais pas de C) (ou de C++)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  convertion double to int -- ATTENTION SUBTILITÉ

 

Sujets relatifs
affichage de double requetes dans un seul tableauaffichage de double requetes dans un seul tableau
[VBA] Problème double macroProblème d'affichage double boucle (mysql_fetch_array)
conversion string-->doubleCherche outils pour export / convertion / import sql
[MySQL] Double datage de valeurs et selection des plus recentesDouble lien en php
Excel: convertion nombre en minute 
Plus de sujets relatifs à : convertion double to int -- ATTENTION SUBTILITÉ


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR