Quelle est la différence entre le Double.parseDouble (String) et Double.valueOf(String)?

je veux convertir String en un type de données Double . Je ne sais pas si je dois utiliser parseDouble ou valueOf .

Quelle est la différence entre ces deux méthodes?

52
demandé sur Radiodef 2012-05-14 08:46:31

6 réponses

parseDouble renvoie un double primitif contenant la valeur de la chaîne:

renvoie un nouveau double initialisé à la valeur représentée par la chaîne spécifiée, telle qu'exécutée par la méthode valueOf de la classe Double.

valueOf renvoie une instance Double, si déjà mise en cache, vous obtiendrez la même instance mise en cache.

renvoie une instance double représentant la valeur double spécifiée. Si une nouvelle instance Double n'est pas nécessaire, cette méthode devrait généralement être utilisé de préférence au constructeur Double( double), comme cette méthode est susceptible de donner une meilleure performance spatiale et temporelle mise en cache des valeurs fréquemment demandées.

pour éviter de créer une nouvelle instance Double objet, vous devez normalement utiliser valueOf

66
répondu MByD 2012-05-14 06:03:56

Double.parseDouble(String) retournera un type primitif double . Double.valueOf(String) renvoie un objet enveloppant de type Double .

Donc, par exemple:

double d = Double.parseDouble("1");

Double d = Double.valueOf("1");

de plus, valueOf(...) est une méthode surchargée. Il a deux variantes:

  1. Double valueOf(String s)
  2. Double valueOf(double d)

Considérant que parseDouble est une méthode unique portant la signature suivante:

  1. double parseDouble(String s)
29
répondu Priyank Doshi 2018-01-27 02:04:12

ils convertissent tous les deux une chaîne de caractères en une valeur double mais où la méthode parseDouble() renvoie la valeur Double primitive, la méthode valueOf() convertit ensuite le double primitif en un objet de classe double wrapper qui contient la valeur double primitive.

la conversion D'une chaîne en double primitif peut jeter NFE(NumberFormatException) si la valeur dans la chaîne N'est pas convertible en double primitif.

1
répondu WickeD 2012-05-14 06:30:41
La méthode

parseDouble () est utilisée pour initialiser une chaîne (qui devrait contenir une valeur numérique)....la valeur qu'il renvoie est de type de données primitives, comme int, float, etc.

mais valueOf() crée un objet de classe Wrapper. Vous devez le déballer afin d'obtenir la double valeur. On peut le comparer à un chocolat. Le fabricant emballe le chocolat avec du papier d'aluminium ou du papier pour éviter la pollution. L'utilisateur prend le chocolat, enlève et jette le wrapper et le mange.

faites la conversion suivante.

int k = 100; Integer it1 = new Integer(k);

le type de données int k est converti en un objet, it1 en utilisant la classe entière. L'objet it1 peut être utilisé dans la programmation Java lorsque k est requis pour un objet.

Le code suivant peut être utilisé pour déballer (retour int Entier de l'objet) l'objet it1.

int m = it1.intValue();
Système

.hors.println(m*m); // gravures 10000

/ / intValue() est une méthode de classe entière qui renvoie un type de données int.

1
répondu rohanpro 2014-06-25 06:20:29

Documentation for parseDouble() says " retourne un nouveau double initialisé à la valeur représentée par la chaîne spécifiée, tel qu'exécuté par la méthode valueOf de la classe Double.", de sorte qu'ils doivent être identiques.

0
répondu Rob I 2012-05-14 04:49:14

si vous voulez convertir une chaîne de caractères en double type de données, alors la plupart choisissent la méthode parseDouble (). Voir le code exemple:

String str = "123.67";
double d = parseDouble(str);

vous obtiendrez la valeur en double. Voir le tutoriel StringToDouble à tutorialData .

0
répondu Rajshri 2012-05-14 12:39:07