เวลา/ตัวเลข

ตัวแปลง Float IEEE 754

เลขฐานสิบ ↔ การแสดงผลแบบไบนารีตาม IEEE 754 (ความละเอียดเดี่ยวหรือคู่) — เครื่องหมาย เลขชี้กำลัง แมนทิสซา ค่าพิเศษ


            

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

Common uses

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).

บทความเกี่ยวกับเครื่องมือนี้: IEEE 754: เหตุใด 0.1 + 0.2 จึงไม่เท่ากับ 0.3 ในโค้ด

คำถามที่พบบ่อย

ความแม่นยำเดี่ยวกับความแม่นยำคู่ต่างกันอย่างไร?

ความแม่นยำเดี่ยว (float, 32 บิต) ให้ความแม่นยำประมาณ 7 หลักทศนิยม ความแม่นยำคู่ (double, 64 บิต) ให้ประมาณ 15-17 หลัก ชนิด Number ของ JavaScript ใช้ความแม่นยำคู่

ทำไมเลขทศนิยมบางตัวถึงสูญเสียความแม่นยำ?

IEEE 754 เก็บตัวเลขในรูปแบบไบนารี และเศษส่วนทศนิยมจำนวนมาก (เช่น 0.1) ไม่มีการแทนค่าไบนารีจำกัดที่แม่นยำ — จึงเก็บค่าที่ใกล้เคียงที่สุดเท่าที่เป็นไปได้พร้อมข้อผิดพลาดจากการปัดเศษเล็กน้อย

NaN, Infinity และ -0 หมายถึงอะไร?

NaN คือผลลัพธ์ของการดำเนินการที่ไม่ถูกต้อง เช่น 0/0 Infinity/-Infinity ปรากฏเมื่อค่าเกินช่วงที่แทนค่าได้ (เช่น หารด้วย 0) +0 และ -0 คือการแทนบิตที่ต่างกันสองแบบของศูนย์แบบมีเครื่องหมาย ซึ่งยังคงเท่ากันเมื่อเป็นตัวเลข

เลขซับนอร์มัล (denormalized) คืออะไร?

เป็นโหมดการแสดงผลพิเศษสำหรับตัวเลขที่มีขนาดเล็กเกินไปสำหรับรูปแบบปกติ — เลข 1 นำหน้าโดยนัยของแมนทิสซาจะถูกละทิ้ง ทำให้สามารถเข้าใกล้ศูนย์ได้ทีละน้อยโดยแลกกับความละเอียดบางส่วน

จะเปรียบเทียบตัวเลขทศนิยมอย่างถูกต้องได้อย่างไรแทนการตรวจสอบความเท่ากันแบบแน่นอน?

แทนที่จะใช้ a === b ให้ตรวจสอบว่าผลต่างระหว่างตัวเลขน้อยกว่าค่าขีดจำกัดเล็ก ๆ (epsilon) หรือไม่: Math.abs(a - b) < 1e-9 ความเท่ากันแบบแน่นอนแทบไม่มีการรับประกันเลยเนื่องจากข้อผิดพลาดจากการปัดเศษ

บทความ: เวลา/ตัวเลข

Unix time: เหตุใดคอมพิวเตอร์จึงนับเวลาตั้งแต่ปี 1970

เหตุใดวันที่ 1 มกราคม 1970 จึงกลายเป็นจุดอ้างอิงเวลาสำหรับระบบคอมพิวเตอร์ส่วนใหญ่

Cron expression: วิธีถอดรหัสตารางเวลาทำงาน

วิธีถอดรหัส expression อย่าง */15 * * * * และรู้แน่ชัดว่างานจะรันเมื่อไหร่

ระบบเลข: เหตุใดจึงมีระบบเลขฐานสอง ฐานแปด และฐานสิบหก

เหตุใดสี #FF5733 ใน CSS จึงเขียนด้วยเลขฐานสิบหกแทนที่จะเป็นฐานสิบ

Bitwise operation: AND, OR และ XOR ทำงานอย่างไรในระดับบิต

bitwise AND ต่างจาก logical AND อย่างไร และเหตุใดจึงต้องทำงานกับบิตแต่ละตัวของตัวเลข

ผลต่างวันที่: เหตุใดการนับวันจึงซับซ้อนกว่าที่คิด

เหตุใดการลบวันที่แบบไร้เดียงสาจึงอาจให้ผลลัพธ์ผิดพลาดเพราะปีอธิกสุรทิน

การคำนวณอายุ: เหตุใดจึงไม่ใช่แค่การลบปีธรรมดา

เหตุใดการลบปีเกิดแบบง่าย ๆ จึงอาจให้อายุมากกว่าความจริงหนึ่งปี

เขตเวลา: เหตุใด UTC จึงไม่ใช่สิ่งเดียวกับ GMT

เหตุใด UTC จึงไม่เคยเปลี่ยนแปลงสองครั้งต่อปี ในขณะที่เวลาลอนดอน (GMT/BST) เปลี่ยนแปลง

เครื่องคำนวณระยะเวลา: วิธีบวกชั่วโมง นาที และวินาทีอย่างถูกต้อง

เหตุใดเมื่อบวกนาทีและวินาทีจึงต้อง "ทด" เศษไปยังหลักถัดไป เหมือนกับการบวกเลขฐานสิบ

ISO 8601 Duration: วิธีเขียนระยะเวลาในรูปแบบมาตรฐาน

เหตุใด PT1H30M จึงหมายถึง "1 ชั่วโมง 30 นาที" ไม่ใช่ "1 นาที 30 ชั่วโมง"

หมายเลขสัปดาห์: เหตุใดแต่ละประเทศจึงนับสัปดาห์ต่างกัน

เหตุใดวันที่ 1 มกราคมจึงอยู่ในสัปดาห์ที่ 52 หรือ 53 ของปีก่อนหน้าบางครั้งตามมาตรฐาน ISO 8601

เลขโรมัน: ระบบที่ไม่มีเลขศูนย์และไม่มีหลักค่าประจำตำแหน่งทำงานอย่างไร

เหตุใด IV จึงหมายถึง 4 ไม่ใช่ 6 และกฎการลบทำงานอย่างไรในเลขโรมัน

ตัวเลขเป็นคำอ่าน: เหตุใดต้องแปลงตัวเลขเป็นคำ

เหตุใดเอกสารธนาคารจึงเขียนจำนวนเงินทั้งเป็นตัวเลขและคำอ่านพร้อมกัน