Double/Double
Résolu/Fermé
bibabobu
Messages postés
12
Date d'inscription
samedi 26 juillet 2008
Statut
Membre
Dernière intervention
25 juin 2010
-
20 juin 2010 à 23:29
bibabobu Messages postés 12 Date d'inscription samedi 26 juillet 2008 Statut Membre Dernière intervention 25 juin 2010 - 25 juin 2010 à 20:39
bibabobu Messages postés 12 Date d'inscription samedi 26 juillet 2008 Statut Membre Dernière intervention 25 juin 2010 - 25 juin 2010 à 20:39
A voir également:
- Double/Double
- Double ecran - Guide
- Whatsapp double sim - Guide
- Double appel - Guide
- Double authentification google - Guide
- Double boot - Guide
4 réponses
Mahmah
Messages postés
496
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
22 juin 2010
125
22 juin 2010 à 17:59
22 juin 2010 à 17:59
Bonjour,
Je ne suis pas forcement très connaisseur (surtout en java) mais voici mon opinion:
double d = new Double(12.2586);
n'est pas équivalent à
double d = 12.2586;
Apparemment c'est une "Unboxing conversion"
Je n'ai pas trouvé si le compilateur faisait effectivement cette conversion de manière implicite donc je ne peux être sûr à 100% que c'est bien elle qui est appliquée ici mais ça expliquerait assez bien ce qui se produit ici.
Bien à vous,
M.
Je ne suis pas forcement très connaisseur (surtout en java) mais voici mon opinion:
double d = new Double(12.2586);
n'est pas équivalent à
double d = 12.2586;
double d = 12.2586;je pense que tout le monde voit...
double d = new Double(12.2586);Ce code construit une instance la classe Double, puis il y a une sorte de cast implicite pour convertir le Double en double puis l'instance de Double est détruite car elle n'est référencée par aucune variable. (donc a priori beaucoup de code pour faire exactement la même chose qu'au dessus)
Apparemment c'est une "Unboxing conversion"
Je n'ai pas trouvé si le compilateur faisait effectivement cette conversion de manière implicite donc je ne peux être sûr à 100% que c'est bien elle qui est appliquée ici mais ça expliquerait assez bien ce qui se produit ici.
Bien à vous,
M.
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
Modifié par loupius le 21/06/2010 à 00:13
Modifié par loupius le 21/06/2010 à 00:13
Gare au lézard primitif (ne lui dîtes pas il ne sera pas ravi de ce qualificatif !) !!!
double d = new Double(12.2586); // est équivalent à double d = 12.2586;
Absolument pas, il y a une erreur, il faut écrire:
double d = new Double(12.2586); // est équivalent à double d = 12.2586;
Absolument pas, il y a une erreur, il faut écrire:
double* d = new double(12.2586);Bonne réflexion.
bibabobu
Messages postés
12
Date d'inscription
samedi 26 juillet 2008
Statut
Membre
Dernière intervention
25 juin 2010
1
22 juin 2010 à 16:47
22 juin 2010 à 16:47
Bonne réflexion -> ah oui, tu m'étonnes.
D'après ma connaissance du C, le wildcard ou l'astérix (ou l'obélix pour ceux qui suivent) indique que la variable est de type pointeur sur double.
Cela dit, d'après ma connaissance en Java, je n'ai jamais encore vu une telle déclaration de variable.
Lorsque tu écris
cela veut dire qu'il existe un constructeur double qui prendrait en paramètre un double. En plus, il n'existe pas de classe double mais seulement une classe Double.
Cependant, il existe des modifications suivant les versions de java et apparemment, après le java 1.4, la classe Double a changé.
Personnellement, je consulte l'API java 1.5.
Au fait, pourrais-tu m'expliquer très vite ton code?
Merci d'avance.
D'après ma connaissance du C, le wildcard ou l'astérix (ou l'obélix pour ceux qui suivent) indique que la variable est de type pointeur sur double.
Cela dit, d'après ma connaissance en Java, je n'ai jamais encore vu une telle déclaration de variable.
Lorsque tu écris
double* d = new double(12.2586);
cela veut dire qu'il existe un constructeur double qui prendrait en paramètre un double. En plus, il n'existe pas de classe double mais seulement une classe Double.
Cependant, il existe des modifications suivant les versions de java et apparemment, après le java 1.4, la classe Double a changé.
Personnellement, je consulte l'API java 1.5.
Au fait, pourrais-tu m'expliquer très vite ton code?
Merci d'avance.
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
23 juin 2010 à 01:22
23 juin 2010 à 01:22
Oublie ce que j'ai dit, car je croyais simplement que tu exposais un problème de C++. Une croyance née d'une imprécision dans la question;
Bonne soirée.
Bonne soirée.
bibabobu
Messages postés
12
Date d'inscription
samedi 26 juillet 2008
Statut
Membre
Dernière intervention
25 juin 2010
1
25 juin 2010 à 20:27
25 juin 2010 à 20:27
I couldn't be more sorry. C'est la moindre des choses de préciser le langage.
Merci tout de même pour la réponse..
Bon W-E
Merci tout de même pour la réponse..
Bon W-E
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
23 juin 2010 à 01:13
23 juin 2010 à 01:13
Bonjour,
Attention Bibabobu, il s'agit d'astérisque et non d'astérix, bien que ce dernier existe ^^.
Sinon, n'oublie jamais de préciser le langage dont tu parles. Cela change beaucoup d'un langage à l'autre.
Bon j'imagine que tu parles de Java, du coup.
Je confirme les propos de Mahmah.
double d = new Double(12.2586); // est équivalent à double d = 12.2586;
Oui, c'est vrai à partir de J2SE 5.0. Normalement, il faudrait écrire :
Double wrap = new Double(12.2586);
double d = wrap.doubleValue();
C'est ce qu'on appelle l'unboxing. Il y a aussi l'autoboxing (c'est le contraire grosso modo). Cette opération est fait à la compilation (si >= J2SE 5.0).
Cdlt,
Attention Bibabobu, il s'agit d'astérisque et non d'astérix, bien que ce dernier existe ^^.
Sinon, n'oublie jamais de préciser le langage dont tu parles. Cela change beaucoup d'un langage à l'autre.
Bon j'imagine que tu parles de Java, du coup.
Je confirme les propos de Mahmah.
double d = new Double(12.2586); // est équivalent à double d = 12.2586;
Oui, c'est vrai à partir de J2SE 5.0. Normalement, il faudrait écrire :
Double wrap = new Double(12.2586);
double d = wrap.doubleValue();
C'est ce qu'on appelle l'unboxing. Il y a aussi l'autoboxing (c'est le contraire grosso modo). Cette opération est fait à la compilation (si >= J2SE 5.0).
Cdlt,
bibabobu
Messages postés
12
Date d'inscription
samedi 26 juillet 2008
Statut
Membre
Dernière intervention
25 juin 2010
1
25 juin 2010 à 20:38
25 juin 2010 à 20:38
Qué miseria! Astérisque biensûr! Merci de signaler l'erreur. En plus, je suis moi-même trop souvent exaspérée dvt les forums informatiques où je trouve des énormes erreurs d'orthographe.
Sinon, pour le langage, pourquoi ne l'ai-je donc pas précisé?!? Dieu merci, fiddy est encore là pour me corriger.
Cdlt
Sinon, pour le langage, pourquoi ne l'ai-je donc pas précisé?!? Dieu merci, fiddy est encore là pour me corriger.
Cdlt
25 juin 2010 à 20:39
bonne soirée.