Convertir un décimal en nombre formaté 15-1

Le
titof92
Je m'explique
Je souhaite convertir un nombre décimal (quitte à le tronquer s'il est
trop long) en chiffre formaté sur 16 positions numériques (complété=
à
gauche par des chiffres 0), dont 15 représentent la partie décimale,
et 1 position ,qui représente un indice de décimalisation. En gros, on
divise le chiffre sur 15 positions par 10 puissance l'indice de
décimalisation, et on obtient le nombre décimal.
Exemples :
0.01 devient 0000000000000012 soit 1 / 10 ^ 2
1.2543 devient 0000000000125434 soit 12543 / 10 ^ 4
comment faire ? disposez vous d'un algorithme pour ce faire en java ?
Merci par avance
Christophe
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Marc Petit-Huguenin
Le #23824061
On 10/04/2011 01:51 PM, titof92 wrote:
Je m'explique...
Je souhaite convertir un nombre décimal (quitte à le tronquer s'il est
trop long) en chiffre formaté sur 16 positions numériques (complété à
gauche par des chiffres 0), dont 15 représentent la partie décimale,
et 1 position ,qui représente un indice de décimalisation. En gros, on
divise le chiffre sur 15 positions par 10 puissance l'indice de
décimalisation, et on obtient le nombre décimal.
Exemples :
0.01 devient 0000000000000012 soit 1 / 10 ^ 2
1.2543 devient 0000000000125434 soit 12543 / 10 ^ 4
comment faire ? disposez vous d'un algorithme pour ce faire en java ?



BigDecimal d = new BigDecimal("0.01");
assert "0000000000000012".equals(String.format("%015d%d", d.
unscaledValue(), d.scale()));
d = new BigDecimal("1.2543");
assert "0000000000125434".equals(String.format("%015d%d", d.
unscaledValue(), d.scale()));
Publicité
Poster une réponse
Anonyme