Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ความแตกต่างระหว่าง float และ double ใน C/C++


ดังที่เรารู้ว่าใน C/C++ เราต้องการประเภทข้อมูลแบบทศนิยมและแบบคู่สำหรับการแสดงตัวเลขจุดทศนิยม นั่นคือตัวเลขที่มีส่วนทศนิยมด้วย ตอนนี้บนพื้นฐานของความแม่นยำที่มาจากทั้งสองประเภทข้อมูลเหล่านี้ เราสามารถแยกความแตกต่างระหว่างทั้งสองได้ ของพวกเขา

กล่าวง่ายๆ ว่า double มีความแม่นยำมากกว่า 2 เท่าเมื่อเปรียบเทียบกับ float ซึ่งหมายความว่าประเภทข้อมูล double มีความแม่นยำเป็นสองเท่าเมื่อเทียบกับประเภทข้อมูล float

ในแง่ของจำนวนความแม่นยำ สามารถระบุได้ว่า double มีความแม่นยำ 64 บิตสำหรับจำนวนทศนิยม (1 บิตสำหรับเครื่องหมาย 11 บิตสำหรับเลขชี้กำลัง และ 52* บิตสำหรับค่า) กล่าวคือ double มีเลขทศนิยม 15 หลัก ในขณะที่ float มีความแม่นยำ 32 บิตสำหรับจำนวนทศนิยม (8 บิตสำหรับเลขชี้กำลัง และ 23* สำหรับค่า) เช่น float มีความแม่นยำทศนิยม 7 หลัก

เนื่องจาก double มีความแม่นยำมากกว่าเมื่อเปรียบเทียบกับ flot จึงเห็นได้ชัดว่ามันใช้หน่วยความจำสองเท่าเมื่อเทียบกับประเภทข้อมูล float

นอกจากนี้ ช่วงของข้อมูลทั้งสองประเภทยังแสดงเป็น ±3.40282347E+38F เช่น 6-7 หลักนัยสำคัญสำหรับ float และ ±1.79769313486231570E+308 เช่น 15-16 หลักนัยสำคัญสำหรับคู่

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