|
| 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | |
|
|
|
|
|
|
|
เพราะเหตุใดนำ 5.5 หักด้วย 5.4 แล้วไม่ได้เท่ากับ 0.1
อาจจะยังไม่มีใครสงสัยในกรณีนี้เพราะไม่ได้สังเกต :) ที่จริงแล้วมีตัวเลขมากมายจนไม่สามารถระบุได้หมดครับที่นำมาหักลบกลบกันแล้วไม่เท่ากับที่ควรเป็น เช่น
10.9-10.8 แล้วไม่เท่ากับ 0.1 5.5-5.4 แล้วไม่เท่ากับ 0.1 4.3-4.2 แล้วไ่ม่เท่ากับ 0.1 ฯลฯ
ทดสอบได้อย่างไรว่าไม่เท่ากัน เพราะได้ทดลองคีย์ลงในเซลล์แล้วก็เห็นได้คำตอบเป็น 0.1 ซึ่งถูกต้องแล้ว
ทดสอบง่าย ๆ ครับ ลองคีย์ตามนี้
1. A1 กรอก 5.5
2. A2 กรอก 5.4
3. A3 คีย์ =A1-A2
4. A4 คีย์ =A3=0.1 ==> คำตอบจะต้องได้ False
เป็นการให้โปรแกรมตรวจสอบว่า 5.5 หักด้วย 5.4 แล้วเท่าักับ 0.1 หรือไม่ ถ้าเท่าจะได้ค่า True ถ้าไม่เท่าจะได้ค่า False ดังนั้นที่เห็นด้วยตาว่า 0.1 คงจะไม่ใช่เสียแล้ว
อ้อ...ใครได้ค่า True บอกด้วยครับ จะได้ซื้อเครื่องนั้นมาใช้ :)
อ้าว...แล้วอย่างนี้จะเชื่อได้อย่างไรว่า Excel คำนวณถูกต้อง
เรื่องความแม่นยำในการคำนวณไม่ต้องสงสัย Excel หรอกครับ เพราะ Excel เก่งกว่าที่คิดไว้มาก สำหรับกรณีที่ยกมานี้ สาเหตุที่ผลการคำนวณออกมาแล้วไม่เป็นไปตามที่เราหวังจะได้เห็น :) เกิดจากการแปลงเลขฐาน 10 ที่เราคีย์ลงไปให้เป็นเลขฐาน 2 (0 กับ 1) แล้วแปลงกลับเป็นเลขฐาน 10 เพื่อการแสดงผล แม้จะไม่ตรงเผง แต่จะผิดพลาดในหลักมาก ๆ เช่น หลักที่ 15 เป็นต้น จึงไม่กระทบกับการคำนวณที่ไม่ได้ต้องการความละเอียดขนาดนั้น
จากตัวอย่าง 5.5-5.4 จะได้ 0.0999999999999996 (คีย์ตัวเลขในเซลล์ใด ๆ =5.5-5.4 แล้วลากเมาส์ไปคลุม 5.5-5.4 จากนั้นกดแป้น F9 จะได้ตัวเลข 0.0999999999999996) ซึ่งไม่เท่ากับ 0.1
จากผลต่างดังกล่าว ก็มีคนสงสัยต่อไปว่า หากต้องการทำให้ได้ 0.1 ตามที่ควรจะเป็นจะต้องทำอย่างไร เรื่องนี้ไม่ยากครับ
1. ใช้ฟังก์ชั่น Round เข้ามาช่วย ลองคีย์ที่เซลล์ใด ๆ ใหม่เป็น
=Round(5.5-5.4,2)=0.1
สูตร Round เป็นสูตรการปัดเศษให้เหลือทศนิยม 2 ตำแหน่ง คราวนี้คำตอบต้องเป็น True อย่างแน่นอน :)
2. กำหนด Precision as displayed โดยเข้าเมนู Tools > Options > Calculation > Precision as displayed
การกำหนดเช่นนี้จะทำให้ค่าในเซลล์เหลือจุดทศนิยมเท่าที่เรากำหนด Format หรือนั่นก็คือเท่าที่มองเห็นด้วยตาแต่จะมีผลกระทบทั้งไฟล์
หากค่านั้น ๆ เป็นค่าคงที่ จะถูกตัดทศนิยมให้เหลือเท่าที่มองเห็นในเซลล์อย่างถาวร
หากค่านั้น ๆ ได้จากสูตร จะสามารถปรับทศนิยมเพิ่มลดได้ตามต้องการซึ่งเหมือน Round ให้โดยอัตโนมัติ
การพิสูจน์ว่าหลังจากกำหนด Precision as displayed แล้ว 5.5-5.4 เท่ากับ 0.1 ให้ลองดังนี้ครับ
1. A1 กรอก 5.5
2. A2 กรอก 5.4
3. A3 คีย์ =A1-A2
4. กำหนด Format ให้เป็นทศนิยม 2 ตำแหน่ง
5. A4 คีย์ =A3=0.1 ==> คำตอบจะต้องได้ True
Create Date : 06 มิถุนายน 2552 |
Last Update : 1 มีนาคม 2556 21:52:29 น. |
|
2 comments
|
Counter : 1316 Pageviews. |
 |
|
|
โดย: แมวป่วน วันที่: 6 มิถุนายน 2552 เวลา:9:47:33 น. |
|
|
|
โดย: คนควน วันที่: 8 มิถุนายน 2552 เวลา:20:30:35 น. |
|
|
|
|
|
|
|
Location :
สงขลา Thailand
[ดู Profile ทั้งหมด]
|
ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 27 คน [?]

|
 MVP Excel
 MOS Expert in Excel 2003 MOS Specialist in Excel 2003
คนควน เป็นคน อ.สะเดา จ.สงขลา จบการศึกษาทางด้านการบัญชีระดับปริญญาตรีและปริญญาโท จากมหาวิทยาลัยรามคำแหง มีความถนัดหลายด้าน ทั้งเรื่อง ศิลปะ ดนตรี กีฬา คอมพิวเตอร์ จากการที่ได้คลุกคลีกับโปรแกรมชุด Microsoft Office จึงได้เรียนรู้เกี่ยวกับเทคนิคการใช้งานต่าง ๆ โดยเฉพาะ Excel จะมีความถนัดเป็นพิเศษ เนื่องจากใช้เป็นส่วนใหญ่ในการทำงานประจำวัน ได้รับ MOS Cetificate (Microsoft Office Specialist) ทั้ง Specialist และ Expert อีกทั้งเป็นคนชอบศึกษาค้นคว้าทดลองและชอบแบ่งปัน จึงได้เขียน Blog เพื่อเผยแพร่เทคนิคการใช้งาน Excel เพื่อประโยชน์แก่ผู้สนใจจะได้มีแหล่งศึกษา นำไปประยุกต์ใช้ให้เกิดประโยชน์สูงสุดกับงานของตนเองต่อไป
เมื่อวันที่ 24 ม.ค. 2553 ได้เปิด Forum เพื่อถาม-ตอบปัญหาเกี่ยวกับ Excel ทั้งเป็นแหล่งศึกษาให้กับผู้สนใจทั่วไป สามารถคลิกภาพด้านบนเพื่อไปยัง Forum ได้ครับ
ข้อความหรือรูปภาพที่ปรากฏในกระทู้ที่ท่านเห็นอยู่นี้ เกิดจากการตั้งกระทู้และถูกส่งขึ้นกระดานข่าวโดยอัตโนมัติจากบุคคลทั่วไป ซึ่ง เจ้าของ Blog มิได้มีส่วนร่วมรู้เห็น ตรวจสอบ หรือพิสูจน์ข้อเท็จจริงใด ๆ ทั้งไม่ร่วมรับผิดชอบต่อความคิดเห็นของบุคคลใด ๆ ทั้งสิ้น
|
|
|
|
|
|
|
|
|