ชนิดของ Number
กระทู้เก่าบอร์ด อ.Yeadram

 1,978   1
URL.หัวข้อ / URL
ชนิดของ Number

อยากทราบให้กระจ่างเรื่องของ ข้อมูลชนิด Number ครับเช่นถ้าข้อมูลเบื้องต้นในแต่ละ Record ใส่ตัวเลขไม่เกิน 20 แน่นอน ผมจึงใช้ Byte แต่หลังจากมีการ Query ข้อมูลทั้งปีซึ่งรวมแล้วน่าจะเป็นหลักหมื่น มันจะแสดงข้อมูลได้ถูกต้องหรือไม่ครับ
อยากให้ช่วยอธิบายครับว่าการเลือกใช้ข้อมูลชนิด Number ควรเลือกใช้จากข้อมูลเบื้องต้น หรือให้เผื่อไว้สำหรับผลรวมของข้อมูลด้วยครับหลังจากที่ใช้ Single และ Double โดยอ่านวิธีการตัดสินใจเลือกใช้จากหนังสือว่าสามารถแสดงผลจุดทศนิยมได้หลายหลักแต่สังเกตุว่าตัวเลขหลักที่อยู่ด้านหน้าจุดทศนิยมมีหลักเดียวแต่การแสดงผลตัวเลขจริงก็สามารถใส่ได้มากกว่า 1 หลักครับจึงอยากได้ความรู้ในส่วนของการเลือกใช้ข้อมูลชนิด Number อย่างละเอียดเพราะใช้บ่อยและเป็นข้อมูลตัวเลขที่ไม่ควรเกิดความผืดพลาดเด็ดขาดเนื่องจากงานบางชิ้นต้องเกี่ยวข้องกับเงินครับ และเคยเจอความผิดพลาดจากการใช้ Double มากับตัวเองคือผลที่โชว์เป็น 0 แต่พอนำมาวางบน Excel แล้วใช้สูตรตรวจสอบกลับเป็นค่าติดลบครับ

1 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R15161
ผมไม่เคยใช้ byte เลย จะว่าประหยัดเนื้อที่กว่าการใช้ Integer หรือ Long Integer ก็จริงอยู่ แต่ปัจจุบันเนื้อที่บนฮาร์ดดิสก์มันมีมหาศาล มูลค่าของเนื้อที่ดิสก์ที่ประหยัดไปได้มันเทียบไม่ได้เลยกับค่าใช้จ่ายที่คนทำโปรแกรมต้องมานั่งขยายเปลี่ยนเป็นประเภทข้อมูลที่ใหญ่กว่า (Integer หรือ Long Integer) และอาจต้องมานั่งแก้โปรแกรมด้วย ถ้าคุณไม่ได้ทำระบบที่ใหญ่ถึงขนาดเนื้อที่ที่ประหยัดได้ 1 Byte/Record นั้นทำให้ลดขนาดของไฟล์ฐานข้อมูลได้อย่างมีนัยสำคัญ (สำหรับผม นัยสำคัญคือระดับหลายร้อย MB เพราะฐานข้อมูล Access มันมีลิมิตที่ 2 GB) ก็ให้ใช้ Integer หรือ Long ไปได้เลย

การเลือกใช้ประเภทข้อมูลไม่ต้องไปคำนึงถึงว่าผลรวมมันจะมากกว่าที่ประเภทข้อมูลนั้นรับได้ มันขึ้นกับว่าตัวจัดการฐานข้อมูลนั้นๆมันมีลิมิตอยู่ที่เท่าไหร่ต่างหาก ผมว่าอย่างน้อยก็รับได้เท่ากับขนาดของ Long Integer ครับ แต่ตรงนี้ไม่ได้หาข้อมูลมายืนยันนะครับ

ประเภทข้อมูลที่เป็น Single หรือ Double นั้นผมก็ไม่เคยใช้เช่นกัน มันเหมาะสำหรับงานทางวิทยาศาสตร์ที่เขียนค่าในรูป ทศนิยม คูณ สิบยกกำลัง ซึ่งคนใช้ข้อมูลประเภเหล่านี้ต้องยอมรับผลการคำนวนที่อาจไม่ตรงแท้เหมือนคิดในกระดาษ แต่ก็เพี้ยนไปแค่เศษเล็กน้อยที่ไม่มีผลต่อนัยสำคัญ แต่งานประเภทที่ทศนิยมคงที่ตายตัว เช่น ทางด้านการเงินอาจใช้มศนิยม 4 หลัก งานเหล่านี้เหมาะที่จะใช้ประเภท Currency (ทษนิยมไม่เกิน 4 หลัก) หรือ Decimal (ทศนิยมเกิน 4 หลักได้) แต่ในภาษา VBA ไม่มีประเภทข้อมูลที่รองรับ Decimal จากฐานข้อมูลโดยตรง ต้องใช้ Variant ใน VBA แทน

เรื่องค่าเปลี่ยนไปเมื่อวางใน Excel อันนี้ไม่แน่ใจครับ แต่น่าจะเพราะ Cell นั้นๆกำหนดให้รับ/แสดงข้อมูลไม่ละเอียดถูกต้องเพียงพอต่อค่านั้นๆครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2584s