En fait c'est pas tant le fait que le nombre de combinaisons soit limité qui pose problème dans le cas précis, mais celui qu'un nombre peut être fini dans une base et pas dans une autre.
Exemple:
1.5d = 1.1b
1.2d = 1.0011001100110011 ...
L'arrondi se fait probablement, dans ton cas, en fonction de la valeur du dernier bit du champs (le bit de poids faible de la mantisse, à droite) qui ici doit probablement être à 1. Quand tu multiples par 100, tu introduis probablement des zéros à la fin de ta mantisse, qui du coup doit être arrondi au plus faible. Il existe plusieurs manières de traiter cela. Quoiqu'il en soit, tu dois bien avoir un fonction round() qui sert à gérer cela (je connais pas le Java).
[^] # Re: Java et les double
Posté par Obsidian . En réponse au journal Java et les double. Évalué à 6.
Exemple:
1.5d = 1.1b
1.2d = 1.0011001100110011 ...
L'arrondi se fait probablement, dans ton cas, en fonction de la valeur du dernier bit du champs (le bit de poids faible de la mantisse, à droite) qui ici doit probablement être à 1. Quand tu multiples par 100, tu introduis probablement des zéros à la fin de ta mantisse, qui du coup doit être arrondi au plus faible. Il existe plusieurs manières de traiter cela. Quoiqu'il en soit, tu dois bien avoir un fonction round() qui sert à gérer cela (je connais pas le Java).