En effet, les nombres à virgule flottante dans les ordinateurs peuvent (notez qu'ils sont possibles) être inexacts. Ils ne peuvent être qu'infiniment proches de la valeur exacte, mais ne peuvent pas être complètement précis. Pourquoi est-ce ainsi ? Ceci est déterminé par les règles de stockage des nombres à virgule flottante. Voyons d'abord comment convertir le nombre décimal 0,4 en un nombre décimal binaire, en utilisant la méthode "multiplié par 2, arrondi et disposé dans l'ordre" (vous ne comprenez pas ? C'est une évidence, c'est trop basique), nous avons constaté que 0,4 ne peut pas être représenté avec précision par du binaire. Dans le monde des nombres binaires, c'est un nombre décimal infiniment récurrent, c'est-à-dire qu'il ne peut pas être "affiché" même si. il est "affiché". Sans oublier qu'il est stocké en mémoire (le stockage des nombres à virgule flottante comprend trois parties : le bit de signe, le bit d'exposant et la mantisse, qui ne seront pas présentées en détail, on peut comprendre qu'il n'y a aucun moyen de représenter avec précision). 1/3 dans le monde décimal, donc dans Bien sûr, 1/5 ne peut pas être exprimé avec précision dans le monde binaire (il peut être exprimé si le binaire a aussi des fractions). Dans le monde binaire, 1/5 est une décimale infiniment récurrente.
Double perdra en précision pendant le fonctionnement. Il est recommandé d'utiliser java.math.BigDecimal pour le fonctionnement.
En effet, les nombres à virgule flottante dans les ordinateurs peuvent (notez qu'ils sont possibles) être inexacts. Ils ne peuvent être qu'infiniment proches de la valeur exacte, mais ne peuvent pas être complètement précis. Pourquoi est-ce ainsi ? Ceci est déterminé par les règles de stockage des nombres à virgule flottante. Voyons d'abord comment convertir le nombre décimal 0,4 en un nombre décimal binaire, en utilisant la méthode "multiplié par 2, arrondi et disposé dans l'ordre" (vous ne comprenez pas ? C'est une évidence, c'est trop basique), nous avons constaté que 0,4 ne peut pas être représenté avec précision par du binaire. Dans le monde des nombres binaires, c'est un nombre décimal infiniment récurrent, c'est-à-dire qu'il ne peut pas être "affiché" même si. il est "affiché". Sans oublier qu'il est stocké en mémoire (le stockage des nombres à virgule flottante comprend trois parties : le bit de signe, le bit d'exposant et la mantisse, qui ne seront pas présentées en détail, on peut comprendre qu'il n'y a aucun moyen de représenter avec précision). 1/3 dans le monde décimal, donc dans Bien sûr, 1/5 ne peut pas être exprimé avec précision dans le monde binaire (il peut être exprimé si le binaire a aussi des fractions). Dans le monde binaire, 1/5 est une décimale infiniment récurrente.