Waktu/Angka
Konverter Float IEEE 754
Angka desimal ↔ representasi biner IEEE 754 (presisi tunggal atau ganda) — tanda, eksponen, mantissa, nilai khusus.
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).
Artikel tentang alat ini: IEEE 754: mengapa 0.1 + 0.2 tidak sama dengan 0.3 dalam kode
Pertanyaan yang sering diajukan
Apa perbedaan antara presisi tunggal dan ganda?
Presisi tunggal (float, 32 bit) memberikan sekitar 7 digit desimal presisi, presisi ganda (double, 64 bit) memberikan sekitar 15-17. Tipe Number JavaScript menggunakan presisi ganda.
Mengapa beberapa angka desimal kehilangan presisi?
IEEE 754 menyimpan angka dalam biner, dan banyak pecahan desimal (seperti 0.1) tidak memiliki representasi biner terbatas yang tepat — jadi nilai terdekat yang mungkin disimpan, dengan sedikit kesalahan pembulatan.
Apa arti NaN, Infinity, dan -0?
NaN adalah hasil dari operasi tidak valid seperti 0/0. Infinity/-Infinity muncul ketika nilai melebihi rentang yang dapat direpresentasikan (misalnya membagi dengan 0). +0 dan -0 adalah dua representasi bit berbeda dari nol bertanda, yang tetap sama sebagai angka.
Apa itu bilangan subnormal (didenormalisasi)?
Mode representasi khusus untuk angka yang magnitudonya terlalu kecil untuk format normal — 1 implisit terdepan pada mantissa dihilangkan, memungkinkan pendekatan bertahap ke nol dengan mengorbankan sebagian presisi.
Bagaimana cara membandingkan bilangan pecahan dengan benar, alih-alih memeriksa kesetaraan tepat?
Alih-alih a === b, periksa apakah selisih antara kedua angka lebih kecil dari ambang batas kecil (epsilon): Math.abs(a - b) < 1e-9. Kesetaraan tepat hampir tidak pernah terjamin karena kesalahan pembulatan.