systemz Posté(e) 21 septembre 2013 Posté(e) 21 septembre 2013 Bonjour, J'essaie de formater des nombres pour les insérer dans une BDD avec le type "DOUBLE". Je veux qu'ils apparaissent avec 2 chiffres après la virgule. Ex : 1 = 1.00 Ex : 1.0 = 1.00 Ex : 12.565 = 12.56 Mais j'ai une erreur qui se trouve au niveau de la 4ème ligne : double amountDouble = 32.0; String amountDouble1 = new DecimalFormat("0.00").format(amountDouble); DecimalFormat decim = new DecimalFormat("0.00"); //Fonctionne bien Double price2 = Double.parseDouble(decim.format(amountDouble)); // Erreur ici Merci d'avance... Citer
Vbarthel Posté(e) 22 septembre 2013 Posté(e) 22 septembre 2013 Ok, je viens de tester à priori ceci devrait fonctionner. double amountDouble = 32.123; String amountDoubleFormated = new DecimalFormat("0.00").format(amountDouble); Double price = Double.valueOf(amountDoubleFormated); Mais je ne comprends pas bien une chose: Pourquoi ne pas stocker la valeur de ton double dans ta Bdd et ne le formater en un string avec deux décimales uniquement lorsque tu devras l'afficher ? Citer
chpil Posté(e) 23 septembre 2013 Posté(e) 23 septembre 2013 +1 avec Vbarthel. Le stockage en base de données devrait être indépendant de la façon dont tu affiches ensuite ces données; donc stockage en base avec le type double, pas String @systemz : tu n'indiques pas quelle erreur se produit, difficile de te dire quel est le problème, mais je sens bien un problème lié à la Locale => ton double formaté avec le DecimalFormat doit ressembler à 32,00 (avec une ',' pour le séparateur décimal), et le parseDouble attend un '.' Ceci aurait sans doute mieux fonctionné (j'ai pas testé) Double price = decim.parse(decim.format(amountDouble)); Citer
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.