Temps/Nombres
Convertisseur de float IEEE 754
Nombre décimal ↔ représentation binaire IEEE 754 (simple ou double précision) — signe, exposant, mantisse, valeurs spéciales.
Computers store fractional numbers in binary under the IEEE 754 standard — a sign, an exponent, and a mantissa, packed into a fixed number of bits. This tool shows that representation for any decimal number and parses it back into a number.
How to use it
- Number → bits: enter a decimal number to get its breakdown into sign, exponent, and mantissa for single (32-bit) or double (64-bit) precision.
- Bits → number: paste a bit representation to get the decimal value back.
- Special values (infinity, NaN, signed zero) are recognized and explained separately.
Common uses
- Understanding why 0.1 + 0.2 doesn't exactly equal 0.3 in most programming languages — a concrete demonstration of rounding error.
- Studying float's internal representation to understand precision limits in financial or scientific calculations.
- Parsing a binary dump or network packet where numbers are transmitted in IEEE 754 format.
Things to keep in mind
Most decimal fractions (0.1, for example) have no exact binary representation — that's the root cause of the typical rounding errors seen in calculation results.
Comparing floating-point numbers for exact equality (===) is unreliable — check instead whether the difference is smaller than a small threshold (epsilon).
Article sur cet outil: IEEE 754 : pourquoi 0.1 + 0.2 n'est pas égal à 0.3 dans le code
Questions fréquentes
Quelle est la différence entre simple et double précision ?
La simple précision (float, 32 bits) donne environ 7 chiffres décimaux de précision, la double (double, 64 bits) environ 15-17. Le type Number de JavaScript utilise la double précision.
Pourquoi certains nombres décimaux perdent-ils en précision ?
IEEE 754 stocke les nombres en binaire, et de nombreuses fractions décimales (comme 0.1) n'ont pas de représentation binaire finie exacte — donc la valeur la plus proche possible est stockée, avec une infime erreur d'arrondi.
Que signifient NaN, Infinity et -0 ?
NaN est le résultat d'une opération invalide comme 0/0. Infinity/-Infinity apparaissent quand une valeur dépasse la plage représentable (ex. diviser par 0). +0 et -0 sont deux représentations binaires différentes du zéro signé, qui sont néanmoins égales en tant que nombres.
Que sont les nombres subnormaux (dénormalisés) ?
Un mode de représentation spécial pour les nombres dont la magnitude est trop petite pour le format normal — le 1 implicite de la mantisse est abandonné, ce qui permet de se rapprocher progressivement de zéro au prix d'une partie de la précision.
Comment comparer correctement des nombres fractionnaires au lieu de vérifier l'égalité exacte ?
Au lieu de a === b, on vérifie si la différence entre les nombres est inférieure à un petit seuil (epsilon) : Math.abs(a - b) < 1e-9. L'égalité exacte n'est presque jamais garantie à cause des erreurs d'arrondi.