je vois que vous vous dites déjà "mais quel problème trivial" !
Mais en fait pas tant que ça, car mon problème vient du fait que si l'on
a un double compris entre 10^-3 et 10^7, alors, Java l'écrit
automatiquement en notation scientifique. Ce que je ne veux pas, puisque
je traite des nombres correspondant à de l'argent. Je veux garder tous
mes chiffres sans exposant ni mantisse !
Quelqu'un parmi vous sait t'il comment faire pour pouvoir obtenir une
chaine de caractères comme celle-ci : 104589896,569 à partir d'un double ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Hervé AGNOUX
Thibal wrote:
Quelqu'un parmi vous sait t'il comment faire pour pouvoir obtenir une chaine de caractères comme celle-ci : 104589896,569 à partir d'un double ?
La méthode bourrin :
BeanShell> import java.math.* BeanShell> d = new Double(104589896.569) 1.04589896569E8 BeanShell> big = new BigDecimal(d) 104589896.5690000057220458984375 BeanShell> big.toString() 104589896.5690000057220458984375 BeanShell>
La méthode éléguante :
BeanShell> import java.text.* BeanShell> format = new DecimalFormat("00000000000000.000000000000")
BeanShell> d = new Double(104589896.569) 1.04589896569E8 BeanShell> buf = new java.lang.StringBuffer()
BeanShell> s = format.format(d.doubleValue(), buf, new FieldPosition(0)) 00000104589896,569000000000 BeanShell>
(merci d'enlever par la pensée le prompt BeanShell).
-- Hervé AGNOUX http://www.diaam-informatique.com
Thibal wrote:
Quelqu'un parmi vous sait t'il comment faire pour pouvoir obtenir une
chaine de caractères comme celle-ci : 104589896,569 à partir d'un double ?
La méthode bourrin :
BeanShell> import java.math.*
BeanShell> d = new Double(104589896.569)
1.04589896569E8
BeanShell> big = new BigDecimal(d)
104589896.5690000057220458984375
BeanShell> big.toString()
104589896.5690000057220458984375
BeanShell>
La méthode éléguante :
BeanShell> import java.text.*
BeanShell> format = new DecimalFormat("00000000000000.000000000000")
java.text.DecimalFormat@674dc
BeanShell> d = new Double(104589896.569)
1.04589896569E8
BeanShell> buf = new java.lang.StringBuffer()
BeanShell> s = format.format(d.doubleValue(), buf, new FieldPosition(0))
00000104589896,569000000000
BeanShell>
(merci d'enlever par la pensée le prompt BeanShell).
Quelqu'un parmi vous sait t'il comment faire pour pouvoir obtenir une chaine de caractères comme celle-ci : 104589896,569 à partir d'un double ?
La méthode bourrin :
BeanShell> import java.math.* BeanShell> d = new Double(104589896.569) 1.04589896569E8 BeanShell> big = new BigDecimal(d) 104589896.5690000057220458984375 BeanShell> big.toString() 104589896.5690000057220458984375 BeanShell>
La méthode éléguante :
BeanShell> import java.text.* BeanShell> format = new DecimalFormat("00000000000000.000000000000")
BeanShell> d = new Double(104589896.569) 1.04589896569E8 BeanShell> buf = new java.lang.StringBuffer()
BeanShell> s = format.format(d.doubleValue(), buf, new FieldPosition(0)) 00000104589896,569000000000 BeanShell>
(merci d'enlever par la pensée le prompt BeanShell).
-- Hervé AGNOUX http://www.diaam-informatique.com
yvon.thoravalNO-SPAM
Hervé AGNOUX wrote:
(merci d'enlever par la pensée le prompt BeanShell). la pensée ne retire rien, elle ajoute ;-)
(merci d'enlever par la pensée le prompt BeanShell). la pensée ne retire rien, elle ajoute ;-)
-- yt
Thibal
Hervé AGNOUX wrote:
Thibal wrote:
Quelqu'un parmi vous sait t'il comment faire pour pouvoir obtenir une chaine de caractères comme celle-ci : 104589896,569 à partir d'un double ?
La méthode bourrin :
BeanShell> import java.math.* BeanShell> d = new Double(104589896.569) 1.04589896569E8 BeanShell> big = new BigDecimal(d) 104589896.5690000057220458984375 BeanShell> big.toString() 104589896.5690000057220458984375 BeanShell>
La méthode éléguante :
BeanShell> import java.text.* BeanShell> format = new DecimalFormat("00000000000000.000000000000")
BeanShell> d = new Double(104589896.569) 1.04589896569E8 BeanShell> buf = new java.lang.StringBuffer()
BeanShell> s = format.format(d.doubleValue(), buf, new FieldPosition(0)) 00000104589896,569000000000 BeanShell>
(merci d'enlever par la pensée le prompt BeanShell).
Merci beaucoup, j'ai utilisé votre méthode avec DecimalFormat, en changeant deux trois trucs pour simplifier un peu le code et le rendu.
Ca marche très bien maintenant, à un souci près, mais je vais mettre celà dans un autre thread. Merci encore.
Hervé AGNOUX wrote:
Thibal wrote:
Quelqu'un parmi vous sait t'il comment faire pour pouvoir obtenir une
chaine de caractères comme celle-ci : 104589896,569 à partir d'un double ?
La méthode bourrin :
BeanShell> import java.math.*
BeanShell> d = new Double(104589896.569)
1.04589896569E8
BeanShell> big = new BigDecimal(d)
104589896.5690000057220458984375
BeanShell> big.toString()
104589896.5690000057220458984375
BeanShell>
La méthode éléguante :
BeanShell> import java.text.*
BeanShell> format = new DecimalFormat("00000000000000.000000000000")
java.text.DecimalFormat@674dc
BeanShell> d = new Double(104589896.569)
1.04589896569E8
BeanShell> buf = new java.lang.StringBuffer()
BeanShell> s = format.format(d.doubleValue(), buf, new FieldPosition(0))
00000104589896,569000000000
BeanShell>
(merci d'enlever par la pensée le prompt BeanShell).
Merci beaucoup, j'ai utilisé votre méthode avec DecimalFormat, en
changeant deux trois trucs pour simplifier un peu le code et le rendu.
Ca marche très bien maintenant, à un souci près, mais je vais mettre
celà dans un autre thread. Merci encore.
Quelqu'un parmi vous sait t'il comment faire pour pouvoir obtenir une chaine de caractères comme celle-ci : 104589896,569 à partir d'un double ?
La méthode bourrin :
BeanShell> import java.math.* BeanShell> d = new Double(104589896.569) 1.04589896569E8 BeanShell> big = new BigDecimal(d) 104589896.5690000057220458984375 BeanShell> big.toString() 104589896.5690000057220458984375 BeanShell>
La méthode éléguante :
BeanShell> import java.text.* BeanShell> format = new DecimalFormat("00000000000000.000000000000")
BeanShell> d = new Double(104589896.569) 1.04589896569E8 BeanShell> buf = new java.lang.StringBuffer()
BeanShell> s = format.format(d.doubleValue(), buf, new FieldPosition(0)) 00000104589896,569000000000 BeanShell>
(merci d'enlever par la pensée le prompt BeanShell).
Merci beaucoup, j'ai utilisé votre méthode avec DecimalFormat, en changeant deux trois trucs pour simplifier un peu le code et le rendu.
Ca marche très bien maintenant, à un souci près, mais je vais mettre celà dans un autre thread. Merci encore.
moijdik
Le jeudi 03 Février 2005 à 11:59 par Thibal :
Bonjour,
je vois que vous vous dites déjà "mais quel problème trivial" ! Mais en fait pas tant que ça, car mon problème vient du fait que si l'on a un double compris entre 10^-3 et 10^7, alors, Java l'écrit automatiquement en notation scientifique. Ce que je ne veux pas, puisque je traite des nombres correspondant à de l'argent. Je veux garder tous mes chiffres sans exposant ni mantisse !
Quelqu'un parmi vous sait t'il comment faire pour pouvoir obtenir une chaine de caractères comme celle-ci : 104589896,569 à partir d'un double ?
En vous remerciant d'avance,
Thibaut
dans un prog, ça donne
new DecimalFormat("00000000000000.000000000000"); StringBuffer buf = new java.lang.StringBuffer(); Double d =new Double(0.000000232659); DecimalFormat format = new DecimalFormat(); StringBuffer s = format.format(d.doubleValue(), buf, new FieldPosition(0)); g.drawString("valeur="+d, 100, 100);
en en-tête: import java.text.DecimalFormat; import java.text.FieldPosition;
Le jeudi 03 Février 2005 à 11:59 par Thibal :
Bonjour,
je vois que vous vous dites déjà "mais quel problème
trivial" !
Mais en fait pas tant que ça, car mon problème vient du fait que
si l'on
a un double compris entre 10^-3 et 10^7, alors, Java l'écrit
automatiquement en notation scientifique. Ce que je ne veux pas, puisque
je traite des nombres correspondant à de l'argent. Je veux garder tous
mes chiffres sans exposant ni mantisse !
Quelqu'un parmi vous sait t'il comment faire pour pouvoir obtenir une
chaine de caractères comme celle-ci : 104589896,569 à partir d'un
double ?
En vous remerciant d'avance,
Thibaut
dans un prog, ça donne
new DecimalFormat("00000000000000.000000000000");
StringBuffer buf = new java.lang.StringBuffer();
Double d =new Double(0.000000232659);
DecimalFormat format = new DecimalFormat();
StringBuffer s = format.format(d.doubleValue(), buf, new FieldPosition(0));
g.drawString("valeur="+d, 100, 100);
en en-tête:
import java.text.DecimalFormat;
import java.text.FieldPosition;
je vois que vous vous dites déjà "mais quel problème trivial" ! Mais en fait pas tant que ça, car mon problème vient du fait que si l'on a un double compris entre 10^-3 et 10^7, alors, Java l'écrit automatiquement en notation scientifique. Ce que je ne veux pas, puisque je traite des nombres correspondant à de l'argent. Je veux garder tous mes chiffres sans exposant ni mantisse !
Quelqu'un parmi vous sait t'il comment faire pour pouvoir obtenir une chaine de caractères comme celle-ci : 104589896,569 à partir d'un double ?
En vous remerciant d'avance,
Thibaut
dans un prog, ça donne
new DecimalFormat("00000000000000.000000000000"); StringBuffer buf = new java.lang.StringBuffer(); Double d =new Double(0.000000232659); DecimalFormat format = new DecimalFormat(); StringBuffer s = format.format(d.doubleValue(), buf, new FieldPosition(0)); g.drawString("valeur="+d, 100, 100);
en en-tête: import java.text.DecimalFormat; import java.text.FieldPosition;