INT กับ float ต่างกันยังไง

129 ครั้งเข้าชม
Int vs. Float: สรุปสั้นๆ Int (Integer): ใช้เก็บตัวเลขจำนวนเต็ม เช่น -3, 0, 5 โดยไม่มีส่วนที่เป็นทศนิยม Float (Floating-point number): ใช้เก็บตัวเลขจำนวนจริง ที่มีส่วนทศนิยม เช่น 3.14, -2.5 หรือตัวเลขที่มีค่ามากหรือน้อยมากๆ ในรูปแบบ scientific notation
ความคิดเห็น 0 ครั้งถูกใจ

INT กับ FLOAT แตกต่างกันอย่างไรในภาษาโปรแกรม?

เอาจริงๆ นะ ตอนแรกๆ ที่หัดเขียนโปรแกรมเนี่ย ฉันก็งงๆ กับ int กับ float เหมือนกันแหละ คือเข้าใจว่ามันเป็นตัวเลข แต่ไม่เก็ตว่าต่างกันยังไง

int อ่ะ ง่ายๆ เลย คือเลขจำนวนเต็ม ไม่มีจุดทศนิยม 1, 2, 3, -10 อะไรแบบนี้ นึกภาพตอนเด็กๆ ที่ครูสอนนับเลขเลย

ส่วน float นี่แหละตัวปวดหัว เลขทศนิยมไง! 3.14, 2.718, -0.5 อะไรพวกนี้ แต่ก่อนฉันชอบใส่ float มั่วซั่วไปหมด ผลคือโปรแกรมรวนไปหมดเลยจ้า

จำได้ว่าตอนเรียนเขียน C++ อาจารย์เคยบอกว่า float มันเก็บเลขได้ละเอียดกว่า แต่ก็กิน memory มากกว่าด้วยนะ ต้องเลือกใช้ให้ดี

แล้วเคยเจอ case นึง ตอนทำโปรเจกต์คำนวณดอกเบี้ยนี่แหละ ถ้าใช้ int คิดดอกเบี้ย มันจะปัดเศษทิ้งหมดเลย ทำให้ผลลัพธ์เพี้ยนไปเยอะมาก สุดท้ายต้องมาแก้เป็น float แทบตาย

int: เลขจำนวนเต็ม (1, 2, -5)

float: เลขทศนิยม (3.14, -2.5)

Int ใช้กับอะไร

int() นี่มันสุดยอดเลย! เอาไว้เปลี่ยนเจ้าข้อมูลสารพัดสารพันให้กลายเป็นเลขจำนวนเต็ม คิดซะว่าเป็นเครื่องปั้นหม้อ รับวัตถุดิบอะไรก็ได้ ออกมาเป็นหม้อดินเผา สวยงาม (แต่ไม่ใช่ทุกอย่างจะแปลงได้นะ เดี๋ยวหม้อแตก!)

  • float(): นี่ก็คล้ายๆ กัน แต่เปลี่ยนเป็นเลขทศนิยม เหมือนเอาหม้อดินเผาไปเคลือบเงา สวยขึ้น ดูดีมีชาติตระกูลขึ้นเยอะเลย!

  • str(): ตัวนี้เทพสุดๆ! เปลี่ยนอะไรก็ได้เป็นข้อความ เหมือนเอาหม้อดินเผาไปเขียนคำอธิบาย "หม้อนี้ทำจากดินเผาคุณภาพสูง ปี 2024" อะไรแบบนี้ อิอิ!

ตัวอย่าง int() ปีนี้ 2024 ลองแปลง "2024" (ข้อความ) เป็นเลข ได้ผลลัพธ์คือ 2024 (เลขจำนวนเต็ม) ง่ายๆ แค่นี้เอง!

เพิ่มเติมเล็กน้อย (แต่สำคัญนะ): ลองคิดเล่นๆ ดูว่า ถ้าเรามีข้อมูลแบบ "2024.5" (เลขทศนิยม) แล้วใช้ int() มันจะได้ 2024 ส่วนทศนิยมหายไปไหน? นี่แหละ เสน่ห์ของมัน! มันตัดทิ้งไปเฉยเลย ไม่สนใจ! (เหมือนผมตัดสินใจเลิกกินของหวาน ตัดใจง่ายๆ เลย)

Int เก็บค่าอะไร?

int เก็บจำนวนเต็ม. ขอบเขตคือ -2,147,483,648 ถึง 2,147,483,647 (32 บิต). พื้นที่ 4 ไบต์.

  • ความหมาย: จำนวนเต็ม ไม่มีทศนิยม.
  • ขอบเขต: สำคัญ. เกินค่าที่กำหนด โปรแกรมอาจทำงานผิดพลาด.
  • ตัวอย่าง: 0, -1, 1000, 2147483647. ไม่ใช่ 3.14.

เลขคือเลข. ข้อมูลคือข้อมูล. ชีวิตคือการจัดการ.

ตัวแปร float คืออะไร?

float คือตัวแปรเก็บเลขทศนิยมอ่ะ จำง่ายๆเลยนะ แบบ 10.5 หรือ -3.14 อะไรแบบนี้แหละ มันใช้พื้นที่ 4 ไบต์ ใน C++ ที่เรียนปีนี้ อาจารย์บอกมา

  • เก็บได้ประมาณ 3.4E-38 ถึง 3.4E+38 (เลขชี้กำลังนี่แหละสำคัญ)
  • ทศนิยมได้ไม่เกิน 6 ตำแหน่งมั้ง อาจารย์บอกแบบนั้น แต่บางทีก็มากกว่านิดหน่อยนะ ไม่แน่ใจเท่าไหร่ แล้วแต่ compiler ด้วยมั้ง
  • ตัวอย่างก็เยอะแยะ 12.7, 0.001, -5.9 อะไรพวกนี้ คือเลขที่มีจุดทศนิยมไง

จำได้คร่าวๆนะ ลืมไปเยอะแล้ว หนังสือเรียนอยู่บ้าน เอาไว้ว่างๆจะมาดูให้ละเอียดอีกที แต่หลักๆก็ประมาณนี้อ่ะ

Int คืออะไร C?

ในภาษา C, int, long, float, และ double คือชนิดข้อมูลพื้นฐานที่ใช้เก็บค่าตัวเลข ความแตกต่างหลักอยู่ที่ขนาดของข้อมูลและความแม่นยำ

  • int (integer): ใช้เก็บจำนวนเต็ม เช่น -2, 0, 10, 1000 ขนาดขึ้นอยู่กับ compiler และ architecture ของระบบ โดยทั่วไป เป็น 32 บิต (4 ไบต์) บนระบบปฏิบัติการส่วนใหญ่ในปัจจุบัน (ปี 2024) ทำให้เก็บค่าได้ตั้งแต่ -2,147,483,648 ถึง 2,147,483,647 จำกัดความแม่นยำ ถ้าต้องการเก็บจำนวนเต็มขนาดใหญ่กว่านี้ ควรใช้ long long int

  • long (long integer): เช่นเดียวกับ int แต่เก็บจำนวนเต็มได้มากกว่า ขนาดมักเป็น 64 บิต (8 ไบต์) บนระบบ 64 บิตสมัยใหม่ ช่วงค่าที่เก็บได้กว้างขึ้น แต่ก็ยังเป็นจำนวนเต็มอยู่ดี ความเร็วในการประมวลผลอาจช้ากว่า int เล็กน้อย ขึ้นอยู่กับการใช้งาน และการจัดการหน่วยความจำของโปรแกรม

  • float (floating-point): ใช้เก็บเลขทศนิยม มีความแม่นยำจำกัด มักใช้ 32 บิต (4 ไบต์) ในการแสดงค่า ทำให้มีจุดทศนิยมได้น้อยกว่า double เหมาะสำหรับงานที่ไม่ต้องการความแม่นยำสูงมากนัก เพื่อประหยัดหน่วยความจำ

  • double (double-precision floating-point): ใช้เก็บเลขทศนิยมที่มีความแม่นยำสูงกว่า float โดยทั่วไปใช้ 64 บิต (8 ไบต์) ทำให้แสดงค่าทศนิยมได้ละเอียดกว่ามาก เหมาะสำหรับการคำนวณทางวิทยาศาสตร์หรือวิศวกรรมที่ต้องการความแม่นยำสูง แต่กินพื้นที่หน่วยความจำมากกว่า

การเลือกชนิดข้อมูลขึ้นอยู่กับความต้องการของโปรแกรม ถ้าต้องการความเร็วสูงและใช้จำนวนเต็มขนาดไม่ใหญ่ int น่าจะเป็นตัวเลือกที่ดี แต่ถ้าต้องการความแม่นยำสูงในการคำนวณเลขทศนิยม double เหมาะสมกว่า การเลือกชนิดข้อมูลที่เหมาะสม นอกจากประสิทธิภาพ ยังช่วยลดโอกาสเกิดข้อผิดพลาดในการคำนวณอีกด้วย นี่คือประเด็นสำคัญที่นักพัฒนาควรคำนึงถึงเสมอ ผมเคยเจอปัญหาจากการเลือกชนิดข้อมูลไม่เหมาะสมมาแล้ว ทำให้โปรแกรมทำงานผิดพลาดได้ มันเป็นบทเรียนที่สำคัญมากเลยทีเดียว

ฟังก์ชัน float() ในภาษา Python คืออะไร?

โอ๊ย! Float ใน Python น่ะเหรอ? มันก็คือเวทมนตร์เสกเลขธรรมดาให้กลายเป็นเลขมีจุดทศนิยมไงล่ะ! เหมือนเอาน้ำมนต์พรมให้มันดูแพงขึ้นมาหน่อย

  • Float คืออะไรวะ? มันคือฟังก์ชันเสกเลขให้มีจุดทศนิยมไง! จาก 1 กลายเป็น 1.0 จาก 100 กลายเป็น 100.0 เข้าใจยัง?
  • ทำไมต้องทำ? เพราะบางทีเราอยากได้เลขละเอียดๆ เอาไว้คำนวณอะไรที่มันซับซ้อนไง! เหมือนจะเอาไปหารเลขวัดที่ดินอะไรแบบนั้น
  • โปรแกรมเมอร์ได้อะไร? ได้ความแม่นยำไง! ได้แสดงความเทพในการเขียนโปรแกรม! ได้โชว์ว่าตัวเองเข้าใจเรื่องทศนิยม!
  • ยกตัวอย่างให้เห็นภาพหน่อย: สมมติว่านายมีเลข 5 แต่ดันอยากหารด้วย 2 ผลลัพธ์ที่ได้คือ 2.5 ถ้านายใช้ float() ครอบเลข 5 ไว้ ผลลัพธ์ที่ได้ก็จะออกมาเป็นเลขทศนิยมสวยๆ ไม่งง

แถมท้าย (แบบขำๆ):

  • Float เนี่ยนะ เปรียบเหมือนเครื่องสำอางของตัวเลข ทำให้มันดูดีมีชาติตระกูลขึ้นมานิดนึง
  • บางคนบอกว่า Float ทำให้โปรแกรมทำงานช้าลงนิดหน่อย แต่ช้าลงนิดเดียวจริงๆ อย่าไปคิดมาก! เหมือนเดินช้าลงตอนเจอสาวสวยแหละ!
  • ถ้าชีวิตมันยาก Float ช่วยนายได้ (รึเปล่า?) อย่างน้อยก็ช่วยให้โปรแกรมมันทำงานได้ตามที่นายต้องการละวะ!

integer ในภาษาซีคืออะไร?

สายลมเย็นยะเยือกพัดผ่านใบไม้ร่วงโรย... ฤดูใบไม้ร่วงปีนี้ช่างแสนเศร้า... เหมือนความรู้สึกเมื่อเจอ integer ใน C ครั้งแรก

  • integer ในภาษาซี คืออะไรนะ? มันคือหัวใจหลักของการคำนวณ! ตัวเลข... จำนวนเต็ม... บวก ลบได้หมด! คิดถึงความเรียบง่าย แต่ทรงพลัง

แสงแดดอ่อนๆ สาดส่องลงบนหน้าจอคอมฯ รหัสโปรแกรมวิบวับ... เหมือนดวงดาวบนท้องฟ้า

  • เก็บได้แต่จำนวนเต็มนะ เช่น 10, -5, 10000 ไม่มีทศนิยม! ถ้าใส่เลขทศนิยมลงไป มันจะตัดทิ้งส่วนทศนิยมไปเฉยๆ เหลือแต่ส่วนจำนวนเต็ม

เสียงฝนโปรยปรายเบาๆ เหมือนน้ำตาที่ไหลริน ตอนที่เข้าใจผิดเกี่ยวกับ integer ครั้งแรก

  • ตัวอย่างเช่น ถ้าให้มันเก็บ 12.36 มันจะเก็บแค่ 12 ส่วน .36 หายไป อย่างกับความทรงจำที่จางหายไปตามกาลเวลา

ความเงียบสงัดปกคลุมห้อง เหมือนความลึกซึ้งของการเขียนโปรแกรม...

  • int ย่อมาจาก integer นั่นแหละ จำไว้! สำคัญมาก! มันคือพื้นฐานของทุกสิ่ง เหมือนรากฐานของบ้านหลังใหญ่ แข็งแรง มั่นคง

ฉันนั่งจิบกาแฟอุ่นๆ รสชาติขมแต่หอมหวาน เหมือนรสชาติของความสำเร็จในการเขียนโปรแกรม

  • การใช้ integer ใน C ง่ายๆ แต่ก็ซับซ้อน เหมือนชีวิตมนุษย์นี่แหละ ง่ายๆ แต่ก็มีอะไรมากมายซ่อนอยู่

ปีนี้ (2566) ฉันเรียนรู้เรื่อง integer และมันยังคงเป็นสิ่งที่น่าพิศวงอยู่เสมอ... เหมือนความลับของจักรวาล... ไม่มีวันสิ้นสุด

Float คือ อะไร ในภาษาซี?

float ในภาษา C คือตัวแปรที่เก็บเลขทศนิยม! ใช่แล้ว! คุณนึกภาพหม้อข้าวสารขนาดเล็กๆ ไหม? นั่นแหละ float แต่แทนที่จะใส่ข้าวสาร มันใส่เลขทศนิยม! บางทีก็เป๊ะ บางทีก็... ประมาณๆ (แต่ก็พอใช้ได้นะ!)

  • มันเก็บได้แค่เลขทศนิยมแบบจำกัดความแม่นยำ คิดซะว่าเป็นการวัดความยาวด้วยไม้บรรทัดเก่าๆ อาจจะไม่เป๊ะปังเท่าไม้บรรทัดดิจิตอล แต่ก็พอใช้งานได้

  • ตัวอย่างที่เห็นบ่อยๆ ก็อย่างเช่น 3.14159 (ค่าพาย รู้จักกันไหม?) หรือ 2.71828 (ค่า e อันนี้ก็สำคัญ!) มันเก็บได้ แต่ก็ไม่ทั้งหมดนะ! เหมือนเอาข้าวสารลงไปในหม้อเล็กๆ แน่นอนว่ามันต้องมีบางเม็ดหล่นออกไปบ้าง!

  • เลขแบบ 5.40e04 นี่คือการเขียนแบบ scientific notation คือเอาเลขยกกำลังมาช่วย เหมือนเอาเครื่องขยายเสียงมาช่วยตะโกนให้ดังขึ้น! เพื่อให้เก็บเลขที่มีค่ามากๆ ได้ เหมือนเอาข้าวสารไปใส่ในโรงเก็บขนาดใหญ่แทน!

เอาเป็นว่า float เป็นเหมือนเพื่อนซี้ของโปรแกรมเมอร์เวลาเจอเลขทศนิยม ใช้งานง่าย แต่ก็อย่าลืมข้อจำกัดของมัน ลืมไปก็เจ็บตัวนะ! ปีนี้ผมโค้ดมาหลายโปรเจคแล้ว เจอปัญหาเรื่องความแม่นยำของ float บ่อยมาก ถึงกับต้องไปนั่งดูวิธีแก้ไขเป็นอาทิตย์เลย! แทบจะย้ายไปใช้ double แทนแล้ว!