Skip to content

3.1 Integer vs Float

คุณพิมพ์ 42 กับ 42.0 — มันเหมือนกันไหม? สำหรับมนุษย์ ใช่ สำหรับคอมพิวเตอร์ ไม่เสมอไป

ลองนึกถึง ลิ้นชักเก็บของ:

  • Integer เหมือนลิ้นชักที่เก็บได้แค่ ก้อนสี่เหลี่ยมเต็มก้อน — 1 ก้อน, 2 ก้อน, 100 ก้อน ไม่มีครึ่งก้อน
  • Float เหมือนลิ้นชักที่เก็บ ทราย — ใส่ได้ละเอียดแต่ไม่มีทางตวงได้แม่นยำ 100%
  • Decimal เหมือนลิ้นชักที่เก็บ เหรียญ — มีหน่วยเล็กสุดชัดเจน (สตางค์) แม่นยำเสมอ

ตารางเปรียบเทียบ

Section titled “ตารางเปรียบเทียบ”
ประเภทGoogle Sheetspandas (Python)SQLใช้เมื่อ
Integernumber (ไม่มี type แยก)int64 / Int64 (nullable)INTEGER, BIGINTนับจำนวน, IDs, อายุ
Floatnumber (ไม่มี type แยก)float64 / Float64 (nullable)REAL, DOUBLE PRECISIONการวัด, คะแนนเฉลี่ย
Exact Decimalnumber + format (ดูเหมือนแม่น แต่ไม่ใช่เสมอ)decimal.DecimalNUMERIC(p, s)เงิน, เปอร์เซ็นต์ที่ต้องแม่นยำ

พิมพ์ในเซลล์:

=TYPE(42) → 1 (number)
=TYPE(42.5) → 1 (number — ชนิดเดียวกัน!)
=TYPE("42") → 2 (text)

Sheets ไม่แยก integer กับ float — ทุกอย่างเป็น “number”

ลองพิมพ์ ID ยาวๆ:

9999999999999999 → Sheets แสดง 10000000000000000!

เพราะ float 64-bit มีความแม่นยำแค่ ~15-17 หลัก ตัวเลข 16 หลักเกินขีดจำกัดไปแล้ว

กฎง่ายๆ: เลือก Type ยังไง

Section titled “กฎง่ายๆ: เลือก Type ยังไง”
สถานการณ์ใช้ Type
นับจำนวน, IDsInteger
การวัดทั่วไป (น้ำหนัก, อุณหภูมิ)Float
เงิน, ราคา, เปอร์เซ็นต์ที่ต้องตรงExact Decimal