Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

1 réponse
Avatar
titof92
Je m'explique...
Je souhaite convertir un nombre d=E9cimal (quitte =E0 le tronquer s'il est
trop long) en chiffre format=E9 sur 16 positions num=E9riques (compl=E9t=E9=
=E0
gauche par des chiffres 0), dont 15 repr=E9sentent la partie d=E9cimale,
et 1 position ,qui repr=E9sente un indice de d=E9cimalisation. En gros, on
divise le chiffre sur 15 positions par 10 puissance l'indice de
d=E9cimalisation, et on obtient le nombre d=E9cimal.
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

1 réponse

Avatar
Marc Petit-Huguenin
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()));