อ่าน 19 นาที
การปัดเศษ
การปัดเศษ หรือ การปัดลง คือกระบวนการปรับ ตัวเลข ให้ เป็น ค่า โดยประมาณ ที่สะดวกกว่า โดยมักจะมีรูปแบบที่สั้นกว่าหรือเรียบง่ายกว่า ตัวอย่างเช่น การแทนที่ 23.4476 ดอลลาร์ด้วย 23.
การปัดเศษ

การปัดเศษหรือการปัดลงคือกระบวนการปรับตัวเลข ให้ เป็น ค่า โดยประมาณที่สะดวกกว่า โดยมักจะมีรูปแบบที่สั้นกว่าหรือเรียบง่ายกว่า ตัวอย่างเช่น การแทนที่ 23.4476 ดอลลาร์ด้วย 23.45 ดอลลาร์เศษส่วน 312/937 ด้วย 1/3 หรือนิพจน์ √2 ด้วย 1.414
การปัดเศษมักทำเพื่อให้ได้ค่าที่รายงานและสื่อสารได้ง่ายกว่าค่าเดิม การปัดเศษยังมีความสำคัญเพื่อหลีกเลี่ยง การรายงานตัวเลข การวัด หรือค่าประมาณ ที่แม่นยำเกินจริงจนอาจทำให้เข้าใจผิดได้ตัวอย่างเช่น ปริมาณที่คำนวณได้ 123456 แต่ทราบว่ามีความแม่นยำเพียงไม่กี่ร้อยหน่วย มักจะระบุได้ดีกว่าว่า "ประมาณ 123500"
ในทางกลับกัน การปัดเศษตัวเลขที่แน่นอนจะทำให้เกิดข้อผิดพลาดจากการปัดเศษในผลลัพธ์ที่รายงาน การปัดเศษแทบจะหลีกเลี่ยงไม่ได้เมื่อรายงานการคำนวณจำนวนมาก โดยเฉพาะอย่างยิ่งเมื่อหารตัวเลขสองจำนวนในเลขคณิตจำนวนเต็มหรือเลขคณิตจุดคงที่เมื่อคำนวณฟังก์ชันทางคณิตศาสตร์เช่นรากที่สองลอการิทึมและไซน์หรือเมื่อใช้ การแสดงผลแบบ จุดลอยตัวที่มีจำนวนหลักสำคัญ คงที่ ในลำดับของการคำนวณ ข้อผิดพลาดจากการปัดเศษเหล่านี้มักจะสะสมและในบาง กรณี ที่ไม่เหมาะสมอาจทำให้ผลลัพธ์ไม่มีความหมาย
การปัดเศษฟังก์ชันทางคณิตศาสตร์เชิงอดิศัย ให้ถูกต้อง นั้นทำได้ยาก เนื่องจากไม่สามารถทราบจำนวนหลักเพิ่มเติมที่ต้องคำนวณเพื่อหาว่าควรปัดขึ้นหรือปัดลงล่วงหน้าได้ ปัญหานี้เรียกว่า " ภาวะกลืนไม่เข้าคายไม่ออกของคนทำตาราง "
การปัดเศษมีความคล้ายคลึงหลายประการกับการแปลงค่าเชิงปริมาณที่เกิดขึ้นเมื่อต้องเข้ารหัสปริมาณทางกายภาพ ด้วยตัวเลขหรือ สัญญาณดิจิทัล
เครื่องหมายเท่ากับหยัก ( ≈ ) บางครั้งใช้เพื่อระบุการปัดเศษของตัวเลขที่แน่นอน เช่น 9.98 ≈ 10 เครื่องหมายนี้ได้รับการแนะนำโดยAlfred George Greenhillในปี 1892 [ 1 ]
คุณลักษณะที่เหมาะสมของวิธีการปัดเศษ ได้แก่:
- ควรทำการปัดเศษโดยใช้ฟังก์ชันด้วยวิธีนี้ เมื่อปัดเศษข้อมูลเดียวกันในหลายๆ ครั้ง ผลลัพธ์ที่ได้จะไม่เปลี่ยนแปลง
- ผลการคำนวณที่ปัดเศษควรใกล้เคียงกับผลการคำนวณที่ไม่ปัดเศษ
- จากผลของ (1) และ (2) ผลลัพธ์จากการปัดเศษควรใกล้เคียงกับค่าป้อนเข้า โดยมักจะใกล้เคียงที่สุดเท่าที่จะเป็นไปได้
- เพื่อให้ถือว่าเป็นการปัดเศษช่วง ของค่า จะต้องเป็นส่วนย่อยของโดเมนซึ่งมักจะเป็นค่าไม่ต่อเนื่องช่วงของค่าแบบคลาสสิกคือจำนวนเต็ม
- การปัดเศษควรคงไว้ ซึ่ง ความสมมาตรที่มีอยู่แล้วระหว่างโดเมนและเรนจ์ ด้วยความแม่นยำที่จำกัด (หรือโดเมนแบบไม่ต่อเนื่อง) สิ่งนี้หมายถึงการขจัดอคติ
- วิธีการปัดเศษควรมีประโยชน์ในวิทยาศาสตร์คอมพิวเตอร์หรือการคำนวณทางคณิตศาสตร์ของมนุษย์ที่ใช้ความแม่นยำจำกัด และความเร็วเป็นปัจจัยสำคัญ
เนื่องจากโดยปกติแล้วเป็นไปไม่ได้ที่วิธีการใดวิธีการหนึ่งจะสามารถตอบสนองคุณลักษณะในอุดมคติได้ทั้งหมด จึงมีวิธีการปัดเศษที่หลากหลายมากมาย
โดยทั่วไปแล้ว การปัดเศษเป็นคุณสมบัติที่คงตัว[ 2 ]กล่าวคือ เมื่อปัดเศษตัวเลขแล้ว การปัดเศษอีกครั้งด้วยความแม่นยำเท่าเดิมจะไม่ทำให้ค่าของตัวเลขเปลี่ยนแปลง ฟังก์ชันการปัดเศษยังเป็นฟังก์ชันโมโนโทนิกกล่าวคือ การปัดเศษตัวเลขสองตัวด้วยความแม่นยำสัมบูรณ์เท่าเดิมจะไม่ทำให้ลำดับของตัวเลขสลับ กัน (แต่อาจให้ค่าเดียวกัน) ในกรณีทั่วไปของช่วงที่ไม่ต่อเนื่อง ฟังก์ชันเหล่านี้เป็นฟังก์ชันคงที่แบบเป็นช่วง
ประเภทของการปัดเศษ
ปัญหาการปัดเศษที่พบได้ทั่วไป ได้แก่:
| ปัญหาการปัดเศษ | ตัวอย่างข้อมูลป้อนเข้า | ผลลัพธ์ | เกณฑ์การปัดเศษ |
|---|---|---|---|
| การประมาณค่าจำนวนอตรรกยะด้วยเศษส่วน | π | 22/7 | ตัวหาร 1 หลัก |
| การประมาณค่าจำนวนตรรกยะด้วยเศษส่วนที่มีตัวส่วนเล็กกว่า | 399 / 941 | 3/7 | ตัวหาร 1 หลัก |
| การประมาณค่าเศษส่วนด้วยจำนวนทศนิยมที่ เป็นเศษส่วน | 5/3 | 1.6667 | ทศนิยม 4 ตำแหน่ง |
| การประมาณค่าทศนิยมที่ เป็นเศษส่วน ด้วยค่าหนึ่งโดยใช้จำนวนหลักที่น้อยกว่า | 2.1784 | 2.18 | ทศนิยม 2 ตำแหน่ง |
| การประมาณค่า จำนวนเต็มทศนิยม ด้วยจำนวนเต็มที่มีเลขศูนย์ต่อท้ายมากกว่า | 23217 | 23200 | ตัวเลขสำคัญ 3 หลัก |
| การประมาณ ค่าจำนวนเต็มทศนิยมขนาดใหญ่โดยใช้สัญกรณ์วิทยาศาสตร์ | 300999999 | 3.01 × 10 8 | ตัวเลขสำคัญ 3 หลัก |
| การประมาณค่าโดยใช้จำนวนทวีคูณของจำนวนที่กำหนด | 48.2 | 45 | ทวีคูณของ 15 |
| ประมาณค่าแต่ละจำนวนจริงในชุดจำกัดด้วยจำนวนเต็มเพื่อให้ผลรวมของจำนวนที่ปัดเศษเท่ากับผลรวมที่ปัดเศษของจำนวนเหล่านั้น[ nb 1 ] | | {0, 0, 1} | ผลรวมขององค์ประกอบที่ปัดเศษเท่ากับผลรวมขององค์ประกอบที่ปัดเศษ |
การปัดเศษเป็นจำนวนเต็ม
รูปแบบพื้นฐานที่สุดของการปัดเศษคือการแทนที่ตัวเลขใดๆ ด้วยจำนวนเต็ม โหมดการปัดเศษทั้งหมดต่อไปนี้เป็นการนำขั้นตอน "round()" ที่มีอาร์กิวเมนต์เดียวมาใช้ในรูปแบบที่เป็นรูปธรรม ฟังก์ชันเหล่านี้เป็นฟังก์ชันที่แท้จริง (ยกเว้นฟังก์ชันที่ใช้ค่าสุ่ม)
การปัดเศษแบบกำหนดทิศทางให้เป็นจำนวนเต็ม
วิธีการทั้งสี่นี้เรียกว่าการปัดเศษแบบมีทิศทางไปยังจำนวนเต็มเนื่องจากค่าที่ปัดจากจำนวนเดิมxไปยังค่าที่ปัดแล้วyนั้นมีทิศทางเข้าหาหรือออกจากค่าจำกัดเดียวกัน (0, +∞หรือ−∞ ) การปัดเศษแบบมีทิศทางใช้ในเลขคณิตช่วงและมักจำเป็นในการคำนวณทางการเงิน
ถ้าxเป็นจำนวนบวก การปัดลงจะเหมือนกับการปัดเข้าหาศูนย์ และการปัดขึ้นจะเหมือนกับการปัดออกจากศูนย์ ถ้าxเป็นจำนวนลบ การปัดลงจะเหมือนกับการปัดออกจากศูนย์ และการปัดขึ้นจะเหมือนกับการปัดเข้าหาศูนย์ ไม่ว่าในกรณีใด ถ้าxเป็นจำนวนเต็มyก็คือxนั่นเอง
ในกรณีที่มีการคำนวณหลายครั้งต่อเนื่องกัน การเลือกวิธีการปัดเศษอาจส่งผลกระทบอย่างมากต่อผลลัพธ์ ตัวอย่างที่มีชื่อเสียงคือดัชนี ใหม่ ที่จัดตั้งขึ้นโดยตลาดหลักทรัพย์แวนคูเวอร์ในปี 1982 ดัชนีนี้ถูกตั้งค่าเริ่มต้นที่ 1,000,000 (ความแม่นยำสามตำแหน่งทศนิยม) และหลังจาก 22 เดือน ดัชนีลดลงเหลือประมาณ 520 แม้ว่าตลาดจะดูเหมือนกำลังเพิ่มขึ้น ปัญหาเกิดจากการคำนวณดัชนีใหม่หลายพันครั้งต่อวัน และมักจะถูกตัดทอน (ปัดลง) เหลือ 3 ตำแหน่งทศนิยม ในลักษณะที่ข้อผิดพลาดในการปัดเศษสะสม การคำนวณดัชนีใหม่สำหรับช่วงเวลาเดียวกันโดยใช้การปัดเศษเป็นทศนิยมสามตำแหน่งที่ใกล้ที่สุดแทนการตัดทอน ทำให้ค่าดัชนีแก้ไขจาก 524,811 เป็น 1,098,892 [ 3 ]
สำหรับตัวอย่างด้านล่างsgn( x )หมายถึงฟังก์ชันเครื่องหมาย ที่ ใช้ กับตัวเลขดั้งเดิมx
ปัดลง
เราอาจปัดลง (หรือปัดเศษลงด้าน ล่างหรือปัดเข้าหาค่าลบอนันต์ ): yคือจำนวนเต็มที่มากที่สุดที่ไม่เกินx
ตัวอย่างเช่น 23.7 จะปัดเศษเป็น 23 และ −23.2 จะปัดเศษเป็น −24
ปัดเศษขึ้น
นอกจากนี้ยังสามารถปัดขึ้น (หรือปัดขึ้นด้านบนหรือปัดเข้าหาค่าอนันต์บวก ) ได้ โดยy คือจำนวนเต็มที่เล็กที่สุดที่ไม่น้อยกว่าx
ตัวอย่างเช่น 23.2 ปัดเศษเป็น 24 และ −23.7 ปัดเศษเป็น −23
ปัดเศษเข้าหาศูนย์
นอกจากนี้ยังสามารถปัดเศษเข้าหาศูนย์ได้ (หรือตัดทิ้งหรือปัดเศษออกจากอนันต์ ) โดยที่yคือจำนวนเต็มที่ใกล้เคียงกับx มากที่สุด โดยอยู่ระหว่าง 0 และx (รวมทั้ง 0 และ x ด้วย) กล่าวคือyคือส่วนจำนวนเต็มของxโดยไม่รวมส่วนที่เป็นเศษส่วน
ตัวอย่างเช่น 23.7 จะปัดเศษเป็น 23 และ −23.7 จะปัดเศษเป็น −23
ปัดเศษออกจากศูนย์
นอกจากนี้ยังสามารถปัดเศษออกจากศูนย์ (หรือปัดเศษเข้าหาอนันต์ ) ได้ โดยที่yคือจำนวนเต็มที่ใกล้เคียง 0 มากที่สุด (หรือเทียบเท่ากับx ) โดยที่xอยู่ระหว่าง 0 และy (รวมทั้ง 0 และ y ด้วย)
ตัวอย่างเช่น 23.2 ปัดเศษเป็น 24 และ −23.2 ปัดเศษเป็น −24
ปัดเศษให้เป็นจำนวนเต็มที่ใกล้ที่สุด
วิธีการทั้งหกนี้เรียกว่าการปัดเศษให้เป็นจำนวนเต็มที่ใกล้ที่สุดการปัดเศษจำนวนxให้เป็นจำนวนเต็มที่ใกล้ที่สุดนั้น จำเป็นต้องมีกฎการแก้ปัญหาในกรณีที่xอยู่กึ่งกลางระหว่างจำนวนเต็มสองจำนวนพอดี นั่นคือ เมื่อส่วนที่เป็นเศษส่วนของxมีค่าเท่ากับ 0.5 พอดี
หากไม่มีส่วนที่เป็นเศษส่วน 0.5 ข้อผิดพลาดจากการปัดเศษที่เกิดจากวิธีการปัดเศษให้ใกล้เคียงที่สุดจะเป็นแบบสมมาตร กล่าวคือ สำหรับทุกเศษส่วนที่ถูกปัดลง (เช่น 0.268) จะมีเศษส่วนส่วนเติมเต็ม (นั่นคือ 0.732) ที่ถูกปัดขึ้นด้วยจำนวนเท่ากัน
เมื่อปัดเศษชุดตัวเลขทศนิยมคงที่ ขนาดใหญ่ที่มีส่วนทศนิยมกระจาย ตัวอย่างสม่ำเสมอข้อผิดพลาดในการปัดเศษของค่าทั้งหมด โดยไม่รวมค่าที่มีส่วนทศนิยม 0.5 จะหักล้างกันทางสถิติ ซึ่งหมายความว่าค่าที่คาดหวัง (ค่าเฉลี่ย)ของตัวเลขที่ปัดเศษแล้วจะเท่ากับค่าที่คาดหวังของตัวเลขเดิมเมื่อตัดตัวเลขที่มีส่วนทศนิยม 0.5 ออกจากชุด
ในทางปฏิบัติ มักใช้ตัวเลข ทศนิยมซึ่งมีความซับซ้อนในการคำนวณมากกว่า เนื่องจากระยะห่างของตัวเลขไม่เท่ากัน
ปัดเศษขึ้นครึ่งหนึ่ง
เราอาจปัดเศษครึ่งหนึ่งขึ้น (หรือปัดเศษครึ่งหนึ่งไปทางค่าอนันต์บวก ) ซึ่งเป็นกฎการตัดสินกรณีที่มีค่าเท่ากันที่ใช้กันอย่างแพร่หลายในหลายสาขาวิชา กล่าวคือ ค่ากึ่งกลางของxจะถูกปัดขึ้นเสมอ ถ้าส่วนที่เป็นเศษส่วนของxเท่ากับ 0.5 พอดี แล้วy = x + 0.5
ตัวอย่างเช่น 23.5 จะปัดเศษเป็น 24 และ −23.5 จะปัดเศษเป็น −23
ภาษาโปรแกรมบางภาษา (เช่น Java และ Python) ใช้คำว่า "half up" เพื่ออ้างถึงการปัดเศษครึ่งหนึ่งออกจากศูนย์แทนที่จะปัดเศษครึ่งหนึ่งเข้าหาค่าอนันต์บวก[ 4 ] [ 5 ]
วิธีนี้ใช้เพียงการตรวจสอบตัวเลขหลักเดียวเพื่อกำหนดทิศทางการปัดเศษในระบบเลขสองคอมพลีเมนต์และระบบเลขที่คล้ายกัน
ปัดลงครึ่งหนึ่ง
นอกจากนี้ เราอาจปัดเศษครึ่งหนึ่งลง (หรือปัดเศษครึ่งหนึ่งเข้าหาค่าลบอนันต์ ) แทนที่จะปัดเศษครึ่งหนึ่งขึ้น ซึ่งเป็นวิธีที่นิยมมากกว่า ถ้าส่วนที่เป็นเศษส่วนของxเท่ากับ 0.5 พอดี แล้วy = x − 0.5
ตัวอย่างเช่น 23.5 จะปัดเศษเป็น 23 และ −23.5 จะปัดเศษเป็น −24
ภาษาโปรแกรมบางภาษา (เช่น Java และ Python) ใช้คำว่า "half down" เพื่อหมายถึงการปัดเศษครึ่งหนึ่งเข้าหาศูนย์แทนที่จะปัดเศษครึ่งหนึ่งเข้าหาค่าลบอนันต์[ 4 ] [ 5 ]
ปัดเศษครึ่งหนึ่งเข้าหาศูนย์
นอกจากนี้ เราอาจปัดเศษครึ่งหนึ่งเข้าหาศูนย์ (หรือปัดเศษครึ่งหนึ่งออกจากค่าอนันต์ ) แทนการปัดเศษครึ่งหนึ่งออกจากศูนย์ ตามปกติ ถ้าส่วนที่เป็นเศษส่วนของxเท่ากับ 0.5 พอดีy = x − 0.5ถ้าxเป็นค่าบวก และy = x + 0.5ถ้าxเป็นค่าลบ
ตัวอย่างเช่น 23.5 จะปัดเศษเป็น 23 และ −23.5 จะปัดเศษเป็น −23
วิธีการนี้ปฏิบัติต่อค่าบวกและค่าลบอย่างสมมาตร ดังนั้นจึงปราศจากอคติโดยรวมต่อค่าบวก/ลบ หากตัวเลขดั้งเดิมเป็นบวกหรือลบด้วยความน่าจะเป็นเท่ากัน อย่างไรก็ตาม วิธีนี้ยังคงมีอคติไปทางศูนย์อยู่บ้าง
ปัดเศษครึ่งหนึ่งออกจากศูนย์
นอกจากนี้ เราอาจปัดเศษครึ่งหนึ่งออกจากศูนย์ (หรือปัดเศษครึ่งหนึ่งเข้าหาค่าอนันต์ ) ซึ่งเป็นกฎการแก้ปัญหาค่าเท่ากันที่นิยมสอนและใช้กันทั่วไป กล่าวคือ ถ้าส่วนที่เป็นเศษส่วนของxเท่ากับ 0.5 พอดี แล้วy = x + 0.5ถ้าxเป็นค่าบวก และy = x − 0.5ถ้าxเป็นค่าลบ
ตัวอย่างเช่น 23.5 ปัดเศษเป็น 24 และ −23.5 ปัดเศษเป็น −24
วิธีนี้อาจมีประสิทธิภาพมากกว่าในคอมพิวเตอร์ที่ใช้ การแสดงค่า แบบเครื่องหมายและขนาด (sign-magnitude representation) สำหรับค่าที่จะปัดเศษ เพราะจะต้องพิจารณาเฉพาะตัวเลขหลักแรกที่ละเว้นไปเท่านั้นเพื่อกำหนดว่าจะปัดขึ้นหรือปัดลง นี่เป็นหนึ่งในวิธีการที่ใช้ในการปัดเศษให้ได้จำนวนหลักสำคัญเนื่องจากความเรียบง่าย
วิธีการนี้ หรือที่รู้จักกันในชื่อการปัดเศษเชิงพาณิชย์จะปฏิบัติต่อค่าบวกและค่าลบอย่างสมมาตร ดังนั้นจึงปราศจากอคติโดยรวมในด้านบวก/ลบ หากตัวเลขดั้งเดิมเป็นบวกหรือลบด้วยความน่าจะเป็นเท่ากัน อย่างไรก็ตาม วิธีนี้ยังคงมีอคติที่ทำให้ค่าไม่เข้าใกล้ศูนย์อยู่ดี
โดยทั่วไปมักใช้สำหรับการแปลงสกุลเงินและการปัดเศษราคา (เมื่อแปลงจำนวนเงินเป็นหน่วยย่อยที่เล็กที่สุดของสกุลเงินก่อน เช่น เซนต์ของยูโร) เนื่องจากอธิบายได้ง่ายโดยพิจารณาเพียงหลักทศนิยมแรก โดยไม่ขึ้นอยู่กับหลักความแม่นยำเพิ่มเติมหรือเครื่องหมายของจำนวนเงิน (เพื่อความเท่าเทียมกันอย่างเคร่งครัดระหว่างผู้จ่ายและผู้รับจำนวนเงิน)
ปัดเศษครึ่งให้เป็นจำนวนเต็ม
นอกจากนี้ยังสามารถปัดเศษครึ่งให้เป็นจำนวนคู่ได้ซึ่งเป็นกฎการแก้ปัญหาค่าเท่ากันโดยไม่มีอคติเชิงบวก/ลบและไม่มีอคติเข้าหา/ออกจากศูนย์ ตามหลักการนี้ ถ้าส่วนที่เป็นเศษส่วนของxคือ 0.5 แล้วyจะเป็นจำนวนเต็มคู่ที่ใกล้เคียงx ที่สุด ตัวอย่างเช่น 23.5 จะกลายเป็น 24 เช่นเดียวกับ 24.5 แต่ −23.5 จะกลายเป็น −24 เช่นเดียวกับ −24.5 ฟังก์ชันนี้จะลดข้อผิดพลาดที่คาดหวังให้น้อยที่สุดเมื่อทำการบวกตัวเลขที่ปัดเศษแล้ว โดยไม่คำนึงถึงว่าตัวเลขที่ป้อนเข้ามาส่วนใหญ่เป็นบวกหรือลบ ตราบใดที่ตัวเลขเหล่านั้นไม่ใช่จำนวนคู่หรือจำนวนคี่เป็นส่วนใหญ่
รูปแบบการปัดเศษให้ใกล้เคียงที่สุดนี้ยังเรียกว่าการปัดเศษแบบบรรจบกัน การปัดเศษแบบนักสถิติ การปัดเศษแบบดัตช์การปัดเศษแบบเกาส์เซียนการปัดเศษแบบเลขคี่ - เลขคู่ [ 6 ]หรือ การปัดเศษ แบบนายธนาคาร[ 7 ]
นี่คือโหมดการปัดเศษเริ่มต้นที่ใช้ใน การดำเนินการตามมาตรฐาน IEEE 754สำหรับผลลัพธ์ในรูปแบบเลขฐานสองแบบลอยตัว
ด้วยการขจัดอคติ การบวกหรือลบจำนวนอิสระซ้ำๆ เช่น ในการเดินสุ่มแบบหนึ่งมิติจะให้ผลลัพธ์ที่ปัดเศษโดยมีข้อผิดพลาดซึ่งมีแนวโน้มที่จะเพิ่มขึ้นตามสัดส่วนของรากที่สองของจำนวนการดำเนินการ มากกว่าที่จะเพิ่มขึ้นแบบเชิงเส้น
อย่างไรก็ตาม กฎนี้ทำให้การกระจายตัวผิดเพี้ยนไป โดยเพิ่มความน่าจะเป็นของเลขคู่เมื่อเทียบกับเลขคี่ นั่นเป็นเหตุผลว่าทำไมกฎนี้จึงใช้ในสถานการณ์ที่ผลรวมมีความสำคัญมากกว่าการกระจายตัว
ปัดเศษครึ่งให้เป็นเลขคี่
เราอาจปัดเศษครึ่งให้เป็นจำนวนคี่ซึ่งเป็นกฎการแก้ปัญหากรณีเศษส่วนเท่ากันที่คล้ายกับการปัดเศษครึ่งให้เป็นจำนวนคู่ ในวิธีนี้ ถ้าส่วนที่เป็นเศษส่วนของxคือ 0.5 แล้วyจะเป็นจำนวนคี่ที่ใกล้เคียงxที่สุด ตัวอย่างเช่น 23.5 จะกลายเป็น 23 เช่นเดียวกับ 22.5 ในขณะที่ −23.5 จะกลายเป็น −23 เช่นเดียวกับ −22.5
วิธีนี้ยังปราศจากอคติเชิงบวก/ลบ และอคติเข้า/ออกจากศูนย์ ตราบใดที่ตัวเลขที่จะปัดเศษไม่ใช่เลขคู่หรือเลขคี่เป็นส่วนใหญ่ นอกจากนี้ยังมีคุณสมบัติการปัดเศษครึ่งหนึ่งให้เป็นเลขคู่ที่ทำให้การกระจายเดิมผิดเพี้ยนไป เนื่องจากเป็นการเพิ่มความน่าจะเป็นของเลขคี่เมื่อเทียบกับเลขคู่ วิธีนี้ถูกใช้สำหรับยอดคงเหลือในธนาคารในสหราชอาณาจักร เมื่อมีการ เปลี่ยน สกุลเงินเป็นระบบทศนิยม[ 8 ]
รูปแบบนี้แทบจะไม่ถูกนำมาใช้ในการคำนวณเลย ยกเว้นในสถานการณ์ที่ต้องการหลีกเลี่ยงการเพิ่มขนาดของจำนวนทศนิยม ซึ่งมีช่วงเลขชี้กำลังที่จำกัด หากใช้การปัดเศษแบบครึ่งต่อครึ่งเป็นเลขคู่จำนวนที่ไม่ใช่จำนวนอนันต์จะถูกปัดเป็นอนันต์ และ ค่า ดีนอร์มัล ขนาดเล็ก จะถูกปัดเป็นค่าปกติที่ไม่ใช่ศูนย์ โดยพื้นฐานแล้ว โหมดนี้จะรักษาระดับขนาดที่มีอยู่ของจำนวนทศนิยม หลีกเลี่ยงผลลัพธ์ที่อยู่นอกช่วงเมื่อเป็นไปได้สำหรับระบบตัวเลขที่มี ฐานเป็น เลข คู่ (เช่น เลขฐานสองและเลขฐานสิบ)
การปัดเศษแบบสุ่มให้เป็นจำนวนเต็ม
การสลับกันตัดสินผลเสมอ
วิธีหนึ่งที่ค่อนข้างไม่เป็นที่รู้จักมากนัก คือการสลับทิศทางการปัดเศษเมื่อปัดเศษตัวเลขที่มีส่วนทศนิยม 0.5 ส่วนตัวเลขอื่นๆ จะปัดเศษเป็นจำนวนเต็มที่ใกล้ที่สุด เมื่อใดก็ตามที่ส่วนทศนิยมเป็น 0.5 ให้สลับการปัดขึ้นหรือลง: สำหรับส่วนทศนิยม 0.5 ครั้งแรก ให้ปัดขึ้น สำหรับครั้งที่สอง ให้ปัดลง และต่อไปเรื่อยๆ หรืออีกวิธีหนึ่ง การปัดเศษส่วนทศนิยม 0.5 ครั้งแรกสามารถกำหนดได้โดยใช้ค่าเริ่มต้นแบบสุ่ม "ขึ้น" และ "ลง" สามารถเป็นวิธีการปัดเศษสองวิธีใดๆ ที่ตรงข้ามกัน เช่น เข้าหาและออกจากอนันต์บวก หรือเข้าหาและออกจากศูนย์
หากการปรากฏของเศษส่วน 0.5 เกิดขึ้นบ่อยกว่าการเริ่มต้นนับใหม่อย่างมีนัยสำคัญ ก็ถือว่าไม่มีอคติ ด้วยการรับประกันว่าไม่มีอคติ จึงมีประโยชน์หากต้องการบวกหรือหาค่าเฉลี่ยของตัวเลขเหล่านั้น
การสุ่มเพื่อตัดสินกรณีเสมอกัน
ถ้าส่วนที่เป็นทศนิยมของxคือ 0.5 ให้สุ่มเลือกyระหว่างx + 0.5และx − 0.5ด้วยความน่าจะเป็นเท่ากัน ส่วนค่าอื่นๆ ให้ปัดเศษเป็นจำนวนเต็มที่ใกล้ที่สุด
เช่นเดียวกับการปัดเศษครึ่งไปเป็นเลขคู่และการปัดเศษครึ่งไปเป็นเลขคี่ กฎนี้โดยพื้นฐานแล้วปราศจากอคติโดยรวม แต่ก็มีความยุติธรรมระหว่าง ค่า y ที่เป็นเลขคู่และเลขคี่ ข้อดีเหนือการตัดสินกรณีค่าเท่ากันแบบอื่นคือ ไม่จำเป็นต้อง "จำ" ทิศทางการปัดเศษครั้งสุดท้ายในส่วนทศนิยม 0.5
การปัดเศษแบบสุ่ม
การปัดเศษดังต่อไปนี้ไปยังจำนวนเต็มที่ใกล้เคียงที่สุดกับลบอนันต์และจำนวนเต็มที่ใกล้เคียงที่สุดกับบวกอนันต์ โดยมีความน่าจะเป็นขึ้นอยู่กับความใกล้เคียง เรียกว่า การปัดเศษ แบบสุ่มและจะให้ผลลัพธ์ที่ไม่ลำเอียงโดยเฉลี่ย[ 9 ]
ตัวอย่างเช่น 1.6 จะถูกปัดเป็น 1 ด้วยความน่าจะเป็น 0.4 และจะถูกปัดเป็น 2 ด้วยความน่าจะเป็น 0.6
การปัดเศษแบบสุ่มสามารถมีความแม่นยำในแบบที่ฟังก์ชัน การปัดเศษ ไม่สามารถทำได้ ตัวอย่างเช่น สมมติว่าเริ่มต้นด้วย 0 และเพิ่ม 0.3 เข้าไป 100 ครั้ง โดยปัดเศษผลรวมที่เกิดขึ้นระหว่างการเพิ่มแต่ละครั้ง ผลลัพธ์จะเป็น 0 หากใช้การปัดเศษแบบปกติ แต่หากใช้การปัดเศษแบบสุ่ม ผลลัพธ์ที่คาดหวังจะเป็น 30 ซึ่งเป็นค่าเดียวกันกับที่ได้โดยไม่ปัดเศษ วิธีนี้อาจมีประโยชน์ในการเรียนรู้ของเครื่องที่การฝึกอบรมอาจใช้การคำนวณเลขคณิตที่มีความแม่นยำต่ำซ้ำๆ[ 9 ] การปัดเศษแบบสุ่มยังเป็นวิธีหนึ่งในการทำให้เกิด การกระจายแบบ 1 มิติ
การเปรียบเทียบวิธีการปัดเศษให้เป็นจำนวนเต็ม
| ค่า | วิธีการเชิงฟังก์ชัน | วิธีการสุ่ม | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| การปัดเศษแบบกำหนดทิศทาง | ปัดเศษให้ใกล้เคียงที่สุด | ปัดเศษเพื่อเตรียมสำหรับความแม่นยำที่สั้นลง | การตัดสินแบบสลับกัน | การตัดสินแบบสุ่ม | สุ่ม | ||||||||||||
| ลง(ไปทาง − ∞ ) | ขึ้น(ไปทาง + ∞ ) | มุ่งสู่ 0 | ห่างจาก 0 | ครึ่งทางลง(ไปทาง − ∞ ) | ครึ่งทางขึ้น(ไปทาง + ∞ ) | ครึ่งทางสู่ 0 | ห่างจาก 0 ครึ่งหนึ่ง | ครึ่งหนึ่งถึงเท่ากัน | ครึ่งต่อคี่ | เฉลี่ย | เอสดี | เฉลี่ย | เอสดี | เฉลี่ย | เอสดี | ||
| +2.8 | +2 | +3 | +2 | +3 | +3 | +3 | +3 | +3 | +3 | +3 | +2 | +3 | 0 | +3 | 0 | +2.8 | 0.04 |
| +2.5 | +2 | +2 | +2 | +2.505 | 0 | +2.5 | 0.05 | +2.5 | 0.05 | ||||||||
| +2.2 | +2 | +2 | +2 | +2 | 0 | +2 | 0 | +2.2 | 0.04 | ||||||||
| +1.8 | +1 | +2 | +1 | +2 | +1 | +1.8 | 0.04 | ||||||||||
| +1.5 | +1 | +1 | +1 | +1.505 | 0 | +1.5 | 0.05 | +1.5 | 0.05 | ||||||||
| +1.2 | +1 | +1 | +1 | +1 | 0 | +1 | 0 | +1.2 | 0.04 | ||||||||
| +0.8 | 0 | +1 | 0 | +1 | +0.8 | 0.04 | |||||||||||
| +0.5 | 0 | 0 | 0 | +0.505 | 0 | +0.5 | 0.05 | +0.5 | 0.05 | ||||||||
| +0.2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +0.2 | 0.04 | ||||||||
| -0.2 | −1 | 0 | −1 | −1 | -0.2 | 0.04 | |||||||||||
| -0.5 | −1 | −1 | −1 | −0.495 | 0 | -0.5 | 0.05 | -0.5 | 0.05 | ||||||||
| -0.8 | −1 | −1 | −1 | −1 | 0 | −1 | 0 | -0.8 | 0.04 | ||||||||
| −1.2 | −2 | −1 | −1 | −2 | −1.2 | 0.04 | |||||||||||
| −1.5 | −2 | −2 | −2 | −1.495 | 0 | −1.5 | 0.05 | −1.5 | 0.05 | ||||||||
| −1.8 | −2 | -2 | −2 | −2 | 0 | −2 | 0 | −1.8 | 0.04 | ||||||||
| −2.2 | −3 | −2 | −2 | −3 | −2 | −2.2 | 0.04 | ||||||||||
| -2.5 | −3 | −3 | −3 | −2.495 | 0 | -2.5 | 0.05 | -2.5 | 0.05 | ||||||||
| −2.8 | −3 | −3 | −3 | −3 | 0 | −3 | 0 | −2.8 | 0.04 | ||||||||
การปัดเศษเป็นค่าอื่นๆ
การปัดเศษให้เป็นผลคูณที่กำหนด
การปัดเศษที่พบได้บ่อยที่สุดคือการปัดเศษให้เป็นจำนวนเต็ม หรือโดยทั่วไปแล้วคือการปัดเศษให้เป็นจำนวนเต็มที่เป็นผลคูณของค่าใดค่าหนึ่ง เช่น การปัดเศษให้เป็นทศนิยมของวินาที ร้อยส่วนของดอลลาร์ จำนวนเต็มที่เป็นผลคูณของ 1/2 หรือ 1/8 นิ้ว จำนวนเต็มสิบหรือจำนวนเต็มพัน เป็นต้น
โดยทั่วไป การปัดเศษจำนวนxให้เป็นจำนวนทวีคูณของค่าบวกm ที่กำหนดไว้ จะต้องดำเนินการตามขั้นตอนดังต่อไปนี้:
ตัวอย่างเช่น การปัดเศษx = 2.1784ดอลลาร์ ให้เป็นจำนวนเต็มเซนต์ (เช่น ให้เป็นจำนวนเต็มที่หารด้วย 0.01 ลงตัว) จะต้องคำนวณ2.1784 / 0.01 = 217.84จากนั้นปัดเศษเป็น 218 และสุดท้ายคำนวณ218 × 0.01 = 2.18
เมื่อปัดเศษให้เหลือจำนวนหลักสำคัญ ที่กำหนดไว้ล่วงหน้า ค่าเพิ่มขึ้นmจะขึ้นอยู่กับขนาดของตัวเลขที่จะปัดเศษ (หรือผลลัพธ์ที่ปัดเศษแล้ว)
ค่าเพิ่มขึ้นmโดยปกติจะเป็นเศษส่วนจำกัดในระบบตัวเลข ใดก็ตาม ที่ใช้ในการแสดงตัวเลขนั้น สำหรับการแสดงผลต่อมนุษย์ มักหมายถึงระบบตัวเลขทศนิยม (นั่นคือmเป็นจำนวนเต็มคูณด้วยกำลังของ 10 เช่น 1/1000 หรือ 25/100) สำหรับค่ากลางที่จัดเก็บในคอมพิวเตอร์ดิจิทัล มักหมายถึงระบบตัวเลขไบนารี ( mเป็นจำนวนเต็มคูณด้วยกำลังของ 2)
ฟังก์ชันนามธรรม "round()" ที่มีอาร์กิวเมนต์เดียว ซึ่งส่งคืนค่าจำนวนเต็มจากค่าจริงใดๆ นั้น มีคำจำกัดความที่เป็นรูปธรรมที่แตกต่างกันอย่างน้อยสิบสองแบบ ซึ่งนำเสนอไว้ใน ส่วน การปัดเศษเป็นจำนวนเต็ม ฟังก์ชันนามธรรม "roundToMultiple()" ที่มีอาร์กิวเมนต์สองตัว ได้รับการนิยามอย่างเป็นทางการไว้ในที่นี้ แต่ในหลายกรณี ฟังก์ชันนี้ถูกใช้โดยปริยายด้วยค่าm = 1สำหรับค่าเพิ่มขึ้น และจากนั้นจะลดรูปเป็นฟังก์ชันนามธรรมที่มีอาร์กิวเมนต์เดียวที่เทียบเท่ากัน ซึ่งมีคำจำกัดความที่เป็นรูปธรรมที่แตกต่างกันอย่างน้อยสิบสองแบบเช่นกัน
การปัดเศษแบบลอการิทึม
การปัดเศษให้ได้กำลังที่กำหนด
การปัดเศษขึ้นกำลัง ที่กำหนด นั้นแตกต่างจากการปัดเศษขึ้นตัวคูณ ที่กำหนดอย่างมาก ตัวอย่างเช่น ในทางคอมพิวเตอร์มักจำเป็นต้องปัดเศษจำนวนขึ้นกำลังของ 2 ที่เป็นจำนวนเต็ม โดยทั่วไปแล้ว ขั้นตอนในการปัดเศษจำนวนบวกxขึ้นกำลังของจำนวนบวกbที่ไม่ใช่ 1 มีดังนี้:
ข้อควรระวังหลายประการที่ใช้กับการปัดเศษให้เป็นผลคูณ ก็สามารถนำมาใช้กับการปัดเศษให้เป็นผลยกได้เช่นกัน
ใน บันได เสียงโครมาติก "สิบสองโทน" ของดนตรี 3/2จะถูกปัดเศษเป็น 2 7/12 (คู่ห้า), 4/3จะถูกปัดเศษเป็น2 5/12 ( คู่สี่) , 5/4 จะถูกปัดเศษเป็น 2 4/12 ( คู่สามเมเจอร์) , 6/5 จะถูกปัดเศษเป็น 2 3/12 (คู่สามไมเนอร์ ) และ9/8 จะถูกปัดเศษเป็น2 2/12 ( คู่สามลด )
การปัดเศษตามมาตราส่วน
การปัดเศษแบบนี้ ซึ่งเรียกอีกอย่างว่าการปัดเศษตามมาตราส่วนลอการิทึมเป็นรูปแบบหนึ่งของการปัดเศษตามกำลังที่กำหนดการปัดเศษตามมาตราส่วนลอการิทึมทำได้โดยการหาค่าลอการิทึมของจำนวนนั้น แล้วทำการปัดเศษตามปกติไปยังค่าที่ใกล้เคียงที่สุดบนมาตราส่วนลอการิทึม
ตัวอย่างเช่น ตัวต้านทานจะถูกระบุค่าเป็นตัวเลขที่ต้องการบนมาตราส่วนลอการิทึม โดยเฉพาะอย่างยิ่งสำหรับตัวต้านทานที่มีความแม่นยำ 10% จะมีค่าระบุเป็น 100, 120, 150, 180, 220 เป็นต้น โดยปัดเศษให้เป็นจำนวนเต็มที่หารด้วย 10 ลงตัว (เช่น ตัวต้านทาน ซีรีส์ E12 ) หากคำนวณแล้วพบว่าต้องการตัวต้านทานขนาด 165 โอห์ม จะได้ว่าlog(150) = 2.176 , log(165) = 2.217และlog(180) = 2.255ค่าลอการิทึมของ 165 ใกล้เคียงกับค่าลอการิทึมของ 180 มากกว่า ดังนั้นตัวต้านทานขนาด 180 โอห์มจึงเป็นตัวเลือกแรกหากไม่มีปัจจัยอื่นใดมาพิจารณา
การที่ค่าx ∈ ( a , b )จะปัดเศษเป็นaหรือbนั้นขึ้นอยู่กับว่าค่ากำลังสองx² มากกว่าหรือน้อยกว่าผลคูณabหรือไม่ ในตัวอย่างตัวต้านทาน ค่า 165 จะปัดเศษเป็น 180 เพราะ165² = 27225มากกว่า150 × 180 = 27000
การปัดเศษจุดลอยตัว
ในการคำนวณเลขทศนิยมการปัดเศษมีจุดมุ่งหมายเพื่อเปลี่ยนค่าx ที่กำหนด ให้เป็นค่าyที่มีจำนวน หลัก สำคัญตามที่ระบุ กล่าวคือyควรเป็นผลคูณของจำนวนmซึ่งขึ้นอยู่กับขนาดของxโดยจำนวนmคือกำลังของฐาน (โดยปกติคือ 2 หรือ 10) ของการแสดงผลเลขทศนิยม
นอกเหนือจากรายละเอียดนี้แล้ว รูปแบบการปัดเศษทั้งหมดที่กล่าวถึงข้างต้นยังใช้ได้กับการปัดเศษจำนวนทศนิยมด้วยเช่นกัน อัลกอริทึมสำหรับการปัดเศษดังกล่าวได้นำเสนอไว้ใน ส่วน การปัดเศษแบบปรับขนาดด้านบนแล้ว แต่ใช้ตัวคูณปรับขนาดคงที่s = 1และฐานจำนวนเต็มb > 1
ในกรณีที่ผลลัพธ์จากการปัดเศษเกินขีดจำกัด ผลลัพธ์สำหรับการปัดเศษแบบกำหนดทิศทางจะเป็นค่าอนันต์ที่มีเครื่องหมายที่เหมาะสมเมื่อ "ปัดเศษออกจากศูนย์" หรือจะเป็นจำนวนบวกจำกัดสูงสุดที่สามารถแสดงได้ (หรือจำนวนลบจำกัดต่ำสุดที่สามารถแสดงได้หากxเป็นค่าลบ) เมื่อ "ปัดเศษเข้าหาศูนย์" ผลลัพธ์ของการเกินขีดจำกัดในกรณีปกติของการปัดเศษเข้าหาจำนวนที่ใกล้ที่สุดจะเป็นค่าอนันต์ที่เหมาะสมเสมอ
การปัดเศษให้เป็นเศษส่วนอย่างง่าย
ในบางบริบท การปัดเศษจำนวนx ที่กำหนด ให้เป็นเศษส่วนที่ "เรียบร้อย" นั้นเป็นสิ่งที่พึงปรารถนา กล่าวคือ เศษส่วนที่ใกล้เคียงที่สุดy = m / nซึ่งตัวเศษmและตัวส่วนnไม่เกินค่าสูงสุดที่กำหนด ปัญหานี้ค่อนข้างแตกต่างจากการปัดเศษค่าให้เป็นจำนวนหลักทศนิยมหรือเลขฐานสองที่กำหนด หรือให้เป็นพหุคูณของหน่วยm ที่กำหนด ปัญหานี้เกี่ยวข้องกับลำดับของ Farey , ต้นไม้ Stern–Brocotและเศษส่วนต่อเนื่อง
ปัดเศษให้เป็นค่าที่ใช้งานได้
โดยทั่วไปแล้ว ไม้แปรรูปกระดาษเขียน อุปกรณ์อิเล็กทรอนิกส์ และผลิตภัณฑ์อื่นๆ อีกมากมาย มักจะจำหน่ายในราคามาตรฐานเพียงไม่กี่ราคาเท่านั้น
ขั้นตอนการออกแบบหลายอย่างอธิบายวิธีการคำนวณค่าโดยประมาณ จากนั้น "ปัดเศษ" ให้เป็นขนาดมาตรฐานโดยใช้วลีเช่น "ปัดลงเป็นค่ามาตรฐานที่ใกล้ที่สุด" "ปัดขึ้นเป็นค่ามาตรฐานที่ใกล้ที่สุด" หรือ "ปัดเป็นค่ามาตรฐานที่ใกล้ที่สุด" [ 10 ] [ 11 ]
เมื่อชุดของค่าที่ต้องการมีระยะห่างเท่ากันบนมาตราส่วนลอการิทึม การเลือกค่าที่ต้องการ ที่ใกล้เคียงที่สุด กับค่าที่กำหนดใดๆ สามารถมองได้ว่าเป็นรูปแบบหนึ่งของการปัดเศษตามมาตราส่วนค่าที่ปัดเศษดังกล่าวสามารถคำนวณได้โดยตรง[ 12 ]
ถังแบบสุ่ม
กฎการปัดเศษทั่วไปสามารถแยกค่าต่างๆ ที่จุดแบ่งใดๆ ก็ได้ เช่น ใช้ในการจัดกลุ่มข้อมูล (data binning ) เครื่องมือที่เกี่ยวข้องซึ่งมีรูปแบบทางคณิตศาสตร์อย่างเป็นทางการคือลำดับป้ายบอกทาง (signpost sequences ) ซึ่งใช้แนวคิดเรื่องระยะทางที่นอกเหนือจากความแตกต่างแบบง่ายๆ ตัวอย่างเช่น ลำดับอาจปัดเศษเป็นจำนวนเต็มที่มี ข้อผิดพลาด สัมพัทธ์ (เปอร์เซ็นต์) น้อยที่สุด
การปัดเศษในบริบทอื่นๆ
การสุ่มตัวอย่างและการกระจายข้อผิดพลาด
เมื่อทำการแปลงสัญญาณต่อเนื่องเช่น คลื่นเสียง ให้เป็นสัญญาณดิจิทัล ผลโดยรวมของการวัดหลายๆ ครั้งมีความสำคัญมากกว่าความแม่นยำของการวัดแต่ละครั้ง ในสถานการณ์เช่นนี้มักใช้ เทคนิคการลด สัญญาณรบกวน (dithering ) และเทคนิคที่เกี่ยวข้องอย่างการกระจายข้อผิดพลาด (error diffusion ) เทคนิคที่เกี่ยวข้องอีกอย่างหนึ่งคือ การมอดูเลชั่นความกว้างพัลส์ ( pulse-width modulation ) ใช้ในการสร้างเอาต์พุตแบบอนาล็อกจากอุปกรณ์เฉื่อยโดยการส่งพัลส์พลังงานอย่างรวดเร็วด้วยรอบการทำงานที่แปรผันได้การมอดูเลชั่น เดลต้า-ซิกมา ( Delta-sigma modulation)มักใช้ในการแปลงระหว่างสัญญาณจากโลกแห่งความเป็นจริงและสัญญาณดิจิทัล ซึ่งช่วยให้สามารถควบคุมสถิติความถี่ของการควอนไทเซชั่นได้
การกระจายความคลาดเคลื่อนพยายามทำให้ความคลาดเคลื่อนโดยเฉลี่ยลดลงเหลือน้อยที่สุด เมื่อจัดการกับความลาดชันที่ไม่รุนแรงจากหนึ่งไปศูนย์ ผลลัพธ์จะเป็นศูนย์ในช่วงสองสามพจน์แรก จนกว่าผลรวมของความคลาดเคลื่อนและค่าปัจจุบันจะมากกว่า 0.5 ในกรณีนี้ ผลลัพธ์จะเป็น 1 และลบผลต่างออกจากความคลาดเคลื่อนที่เกิดขึ้นแล้วการกระจายความคลาดเคลื่อนแบบ Floyd–Steinbergเป็นวิธีการกระจายความคลาดเคลื่อนที่นิยมใช้ในการแปลงภาพเป็นดิจิทัล
ยกตัวอย่างแบบหนึ่งมิติ สมมติว่าตัวเลข0.9677 , 0.9204 , 0.7451และ0.3091ปรากฏเรียงกัน และแต่ละตัวเลขจะต้องปัดเศษให้เป็นจำนวนเต็มที่หารด้วย0.01 ลงตัว ในกรณีนี้ ผลรวมสะสม0.9677 , 1.8881 = 0.9677 + 0.9204 , 2.6332 = 0.9677 + 0.9204 + 0.7451และ2.9423 = 0.9677 + 0.9204 + 0.7451 + 0.3091แต่ละค่าจะถูกปัดเศษให้เป็นจำนวนเต็มที่หารด้วย0.01 ลงตัวได้แก่0.97 , 1.89 , 2.63และ2.94ค่าแรกและผลต่างของค่าที่อยู่ติดกันจะให้ค่าที่ปัดเศษตามที่ต้องการ: 0.97 , 0.92 = 1.89 − 0.97 , 0.74 = 2.63 − 1.89 , และ0.31 = 2.94 − 2.63
เลขคณิตมอนเตคาร์โล
การคำนวณแบบมอนเตคาร์โลเป็นเทคนิคในวิธีการมอนเตคาร์โลที่การปัดเศษจะสุ่มขึ้นหรือลง การปัดเศษแบบสุ่มสามารถใช้สำหรับการคำนวณแบบมอนเตคาร์โลได้ แต่โดยทั่วไปแล้ว การปัดเศษขึ้นหรือลงด้วยความน่าจะเป็นที่เท่ากันมักจะใช้บ่อยกว่า การรันซ้ำๆ จะให้การกระจายแบบสุ่มของผลลัพธ์ ซึ่งสามารถบ่งชี้ถึงความเสถียรของการคำนวณได้[ 13 ]
การคำนวณที่แม่นยำด้วยการปัดเศษทางคณิตศาสตร์
เราสามารถใช้การปัดเศษทางคณิตศาสตร์เพื่อประเมินค่าที่แน่นอนของฟังก์ชันที่มีโดเมนและเรนจ์เป็นจำนวนเต็มได้ ตัวอย่างเช่น ถ้าทราบว่าจำนวนเต็มnเป็นกำลังสองสมบูรณ์ เราสามารถคำนวณรากที่สองของ n ได้โดยการแปลงnเป็นค่าทศนิยมzคำนวณค่ารากที่สองโดยประมาณxของzด้วยค่าทศนิยม แล้วปัดเศษxให้เป็นจำนวนเต็มที่ใกล้ที่สุดyถ้าnไม่ใหญ่เกินไป ข้อผิดพลาดจากการปัดเศษทศนิยมในxจะน้อยกว่า 0.5 ดังนั้นค่าที่ปัดเศษyจะเป็นรากที่สองที่แน่นอนของnนี่คือเหตุผลหลักที่ว่าทำไมไม้บรรทัดคำนวณจึงสามารถใช้สำหรับการคำนวณที่แม่นยำได้
การปัดเศษสองครั้ง
การปัดเศษตัวเลขสองครั้งติดต่อกันไปยังระดับความแม่นยำที่แตกต่างกัน โดยความแม่นยำครั้งหลังจะหยาบกว่า ไม่รับประกันว่าจะให้ผลลัพธ์เดียวกันกับการปัดเศษเพียงครั้งเดียวไปยังความแม่นยำสุดท้าย ยกเว้นในกรณีของการปัดเศษแบบกำหนดทิศทาง[ nb 2 ]ตัวอย่างเช่น การปัดเศษ 9.46 ให้เป็นทศนิยมตำแหน่งที่ใกล้ที่สุดจะได้ 9.5 และจากนั้นจะได้ 10 เมื่อปัดเศษเป็นจำนวนเต็มที่ใกล้ที่สุดโดยใช้การปัดเศษครึ่งให้เป็นเลขคู่ แต่จะได้ 9 เมื่อปัดเศษโดยตรงโดยใช้วิธีเดียวกัน Borman และ Chatfield [ 14 ]กล่าวถึงผลกระทบของการปัดเศษสองครั้งเมื่อเปรียบเทียบข้อมูลที่ปัดเศษเป็นทศนิยมหนึ่งตำแหน่งกับขีดจำกัดข้อกำหนดที่แสดงโดยใช้จำนวนเต็ม
ในคดีMartinez v. AllstateและSendejo v. Farmersซึ่งฟ้องร้องระหว่างปี 1995 ถึง 1997 บริษัทประกันภัยโต้แย้งว่าการปัดเศษเบี้ยประกันภัยสองครั้งนั้นเป็นสิ่งที่อนุญาตได้และเป็นสิ่งที่จำเป็น ศาลสหรัฐฯ ตัดสินคัดค้านบริษัทประกันภัยและสั่งให้พวกเขานำกฎมาใช้เพื่อให้แน่ใจว่ามีการปัดเศษเพียงครั้งเดียว[ 15 ]
ภาษาคอมพิวเตอร์บางภาษาและ มาตรฐาน IEEE 754-2008กำหนดว่าในการคำนวณแบบตรงไปตรงมา ผลลัพธ์ไม่ควรถูกปัดเศษสองครั้ง ปัญหานี้เป็นปัญหาเฉพาะของ Java เนื่องจากได้รับการออกแบบให้ทำงานเหมือนกันบนเครื่องต่างๆ จึงต้องใช้เทคนิคการเขียนโปรแกรมพิเศษเพื่อให้บรรลุเป้าหมายนี้ด้วยจุดลอยตัวx87 [ 16 ] [ 17 ]ภาษา Java ได้รับการเปลี่ยนแปลงเพื่อให้สามารถแสดงผลลัพธ์ที่แตกต่างกันได้ในกรณีที่ความแตกต่างไม่สำคัญ และต้อง ใช้ตัวกำหนดคุณสมบัติ strictfpเมื่อผลลัพธ์ต้องสอดคล้องกันอย่างแม่นยำ จุดลอยตัวแบบเข้มงวดได้รับการคืนค่าใน Java 17 [ 18 ]
ในอัลกอริธึมบางตัว ผลลัพธ์ระดับกลางจะถูกคำนวณด้วยความแม่นยำที่สูงกว่า จากนั้นจะต้องปัดเศษให้ตรงกับความแม่นยำสุดท้าย การปัดเศษสองครั้งสามารถหลีกเลี่ยงได้โดยการเลือกการปัดเศษที่เหมาะสมสำหรับการคำนวณระดับกลาง ซึ่งประกอบด้วยการหลีกเลี่ยงการปัดเศษไปยังจุดกึ่งกลางสำหรับการปัดเศษขั้นสุดท้าย (ยกเว้นเมื่อจุดกึ่งกลางเป็นค่าที่แน่นอน) ในเลขคณิตไบนารี แนวคิดคือการปัดเศษผลลัพธ์เข้าหาศูนย์ และตั้งค่าบิตที่มีนัยสำคัญน้อยที่สุดเป็น 1 หากผลลัพธ์ที่ปัดเศษไม่ตรง การปัดเศษนี้เรียกว่า การปัดเศษ แบบเหนียว[ 19 ] หรือกล่าวอีกนัยหนึ่ง คือ การส่งคืนผลลัพธ์ระดับกลางเมื่อสามารถแสดงได้อย่างแม่นยำ และส่งคืนจำนวนจุดลอยตัวที่ใกล้ที่สุดที่มีนัยสำคัญเป็นเลขคี่ในกรณีอื่น นี่คือเหตุผลที่เรียกว่าการปัดเศษเป็นเลขคี่ [ 20 ] [ 21 ] การนำวิธีการนี้ไปใช้จริงสำหรับเลขคณิตไบนารีและทศนิยม จะถูกนำไปใช้เป็นการปัดเศษเพื่อเตรียมพร้อมสำหรับความแม่นยำที่สั้นลง
การปัดเศษเพื่อเตรียมพร้อมสำหรับความแม่นยำที่สั้นลง
โหมดการปัดเศษนี้ใช้เพื่อหลีกเลี่ยงผลลัพธ์ที่อาจผิดพลาดหลังจากการปัดเศษหลายครั้งสามารถทำได้โดยการปัดเศษทั้งหมด ยกเว้นการปัดเศษครั้งสุดท้าย โดยใช้การปัดเศษเพื่อเตรียมความแม่นยำที่สั้นกว่า ("RPSP") และเฉพาะการปัดเศษครั้งสุดท้ายเท่านั้นที่ใช้โหมดที่ร้องขอจากภายนอก
ในการคำนวณเลขฐานสิบ จะหลีกเลี่ยงตัวเลขหลักสุดท้ายที่เป็น 0 และ 5 เมื่อไม่สามารถแสดงค่าอินพุตได้อย่างแม่นยำ หากมีตัวเลือกระหว่างตัวเลขที่มีหลักที่มีค่าน้อยที่สุดเป็น 0 หรือ 1, 4 หรือ 5, 5 หรือ 6, 9 หรือ 0 ตัวเลขที่แตกต่างจาก 0 หรือ 5 จะถูกเลือก มิฉะนั้น การเลือกจะเป็นไปโดยพลการ IBM กำหนดว่าในกรณีหลัง ตัวเลขที่มีค่าน้อยกว่าจะถูกเลือก[ 22 ] [ 23 ] RPSP สามารถนำไปใช้กับขั้นตอนระหว่างการปัดเศษสองครั้งที่ต่อเนื่องกันได้ โดยมีค่าเพียงหลักเดียว (ตัวอย่างเช่น การปัดเศษเป็น 1/10 สามารถทำได้หลังจากปัดเศษเป็น 1/100) ตัวอย่างเช่น เมื่อปัดเศษเป็นจำนวนเต็ม
- 20.0 ปัดเศษเป็น 20;
- 20.01, 20.1, 20.9, 20.99, 21, 21.01, 21.9, 21.99 จะถูกปัดเศษเป็น 21 (เพื่อหลีกเลี่ยงเลข 0 ตัวสุดท้าย)
- 22.0, 22.1, 22.9, 22.99 จะถูกปัดเศษเป็น 22;
- 24.0, 24.1, 24.9, 24.99 จะถูกปัดเศษเป็น 24 (เพื่อหลีกเลี่ยงเลข 5 ตัวสุดท้าย)
- 25.0 ปัดเศษเป็น 25;
- 25.01 และ 25.1 จะถูกปัดเศษเป็น 26 (เพื่อหลีกเลี่ยงเลข 5 ตัวสุดท้าย)
ในตัวอย่างจากหัวข้อ " การปัดเศษสองครั้ง " การปัดเศษ 9.46 ให้เหลือทศนิยมหนึ่งตำแหน่งจะได้ 9.4 ซึ่งเมื่อปัดเศษกลับเป็นจำนวนเต็มจะได้ 9
ในเลขคณิตฐานสอง การปัดเศษนี้เรียกว่า "ปัดเศษเป็นเลขคี่" (อย่าสับสนกับ " ปัดเศษครึ่งเป็นเลขคี่ ") ตัวอย่างเช่น เมื่อปัดเศษเป็น 1/4 (0.01 ในเลขฐานสอง)
- x = 2.0 ⇒ ผลลัพธ์คือ 2 (10.00 ในเลขฐานสอง)
- 2.0 < x < 2.5 ⇒ ผลลัพธ์คือ 2.25 (10.01 ในระบบเลขฐานสอง)
- x = 2.5 ⇒ ผลลัพธ์คือ 2.5 (10.10 ในระบบเลขฐานสอง)
- 2.5 < x < 3.0 ⇒ ผลลัพธ์คือ 2.75 (10.11 ในระบบเลขฐานสอง)
- x = 3.0 ⇒ ผลลัพธ์คือ 3 (11.00 ในระบบเลขฐานสอง)
เพื่อให้ได้ผลลัพธ์ที่ถูกต้องในการคำนวณเลขฐานสอง แต่ละขั้นตอนการปัดเศษจะต้องลบเลขฐานสองออกอย่างน้อย 2 หลัก มิฉะนั้นอาจได้ผลลัพธ์ที่ไม่ถูกต้อง ตัวอย่างเช่น
- 3.125 RPSP เป็น 1/4 ⇒ ผลลัพธ์คือ 3.25
- 3.25 RPSP หารด้วย 1/2 ⇒ ผลลัพธ์คือ 3.5
- 3.5 ปัดเศษครึ่งให้เป็นเลขคู่ แล้วได้ 1 ⇒ ผลลัพธ์คือ 4 (ผิด)
หากลบขั้นตอนกลางที่ผิดพลาดออก การปัดเศษขั้นสุดท้ายให้เป็นจำนวนเต็มจะปัด 3.25 ให้เป็นค่าที่ถูกต้องคือ 3
RPSP ถูกนำไปใช้ในฮาร์ดแวร์ของ IBM zSeriesและpSeriesใน โมดูล Python "Decimal", โมดูล Tcl "math", แพ็กเกจ Haskell "decimal-arithmetic" และอาจรวมถึงโมดูลอื่นๆ โหมดนี้เรียกว่า ROUND_05UP หรือ round05up
ปัญหาของช่างทำโต๊ะ
วิลเลียม เอ็ม. คาฮานเป็นผู้บัญญัติศัพท์ "ภาวะกลืนไม่เข้าคายไม่ออกของผู้ทำตาราง" (The Table-Maker's Dilemma) สำหรับต้นทุนที่ไม่ทราบแน่ชัดของการปัดเศษฟังก์ชันอดิศัย :
ไม่มีใครรู้ว่าการคำนวณy wที่ปัดเศษอย่างถูกต้องสำหรับอาร์กิวเมนต์จุดลอยตัวสองตัวที่ไม่เกิดการโอเวอร์โฟลว์/อันเดอร์โฟลว์นั้นจะมีค่าใช้จ่ายเท่าใด ในทางกลับกัน ไลบรารีคณิตศาสตร์ที่มีชื่อเสียงจะคำนวณฟังก์ชันอดิศัย พื้นฐาน ส่วนใหญ่ภายในเวลามากกว่าครึ่งulp เล็กน้อย และเกือบทุกครั้งภายในหนึ่ง ulp ทำไม y wจึงไม่สามารถปัดเศษภายในครึ่ง ulp ได้เหมือนกับ SQRT? เพราะไม่มีใครรู้ว่าการคำนวณนั้นจะมีค่าใช้จ่ายเท่าใด... ไม่มีวิธีทั่วไปที่จะคาดการณ์ได้ว่าจะต้องมีการทดเลขเพิ่มกี่หลักเพื่อคำนวณนิพจน์อดิศัยและปัดเศษให้ถูกต้องตามจำนวนหลักที่กำหนดไว้ล่วงหน้า แม้แต่ข้อเท็จจริง (ถ้าเป็นจริง) ที่ว่าจำนวนหลักเพิ่มที่จำกัดจะเพียงพอในที่สุดอาจเป็นทฤษฎีบทที่ลึกซึ้ง[ 24 ]
มาตรฐานเลขทศนิยมIEEE 754 รับประกันว่าการบวก การลบ การคูณ การหาร การ คูณ-บวกแบบผสม การหาค่ารากที่สอง และการหาเศษเหลือของเลขทศนิยม จะให้ผลลัพธ์ที่ปัดเศษอย่างถูกต้องตามการดำเนินการที่มีความแม่นยำอนันต์ อย่างไรก็ตาม มาตรฐานปี 1985 ไม่ได้ให้การรับประกันเช่นนี้สำหรับฟังก์ชันที่ซับซ้อนกว่า และโดยทั่วไปแล้วความแม่นยำจะอยู่ที่ระดับบิตสุดท้ายเท่านั้น แต่มาตรฐานปี 2008 รับประกันว่าการใช้งานที่สอดคล้องกับมาตรฐานจะให้ผลลัพธ์ที่ปัดเศษอย่างถูกต้องตามโหมดการปัดเศษที่ใช้งานอยู่ อย่างไรก็ตาม การใช้งานฟังก์ชันเหล่านั้นเป็นทางเลือก
การใช้ทฤษฎีบท Gelfond–Schneiderและทฤษฎีบท Lindemann–Weierstrassทำให้สามารถพิสูจน์ได้ว่าฟังก์ชันพื้นฐานมาตรฐานหลายฟังก์ชันให้ ผลลัพธ์ ที่เป็นอดิศัยยกเว้นในบางกรณีที่รู้จักกันดี ดังนั้นจากมุมมองทางทฤษฎีแล้ว การปัดเศษฟังก์ชันดังกล่าวให้ถูกต้องจึงเป็นไปได้เสมอ อย่างไรก็ตาม สำหรับการใช้งานฟังก์ชันดังกล่าว การกำหนดขีดจำกัดสำหรับความแม่นยำที่กำหนดว่าต้องคำนวณผลลัพธ์ที่แม่นยำเพียงใดก่อนที่จะรับประกันผลลัพธ์ที่ปัดเศษอย่างถูกต้อง อาจต้องใช้เวลาในการคำนวณมากหรืออาจทำไม่ได้[ 25 ]ในทางปฏิบัติ เมื่อไม่ทราบขีดจำกัดนี้ (หรือทราบเพียงขอบเขตที่กว้างมาก) จะต้องมีการตัดสินใจบางอย่างในการใช้งาน (ดูด้านล่าง) แต่ตามแบบจำลองความน่าจะเป็น การปัดเศษที่ถูกต้องสามารถทำได้ด้วยความน่าจะเป็นที่สูงมากเมื่อใช้ความแม่นยำระดับกลางไม่เกินสองเท่าของจำนวนหลักของรูปแบบเป้าหมายบวกกับค่าคงที่เล็กน้อย (หลังจากพิจารณากรณีพิเศษแล้ว)
แพ็กเกจการเขียนโปรแกรมบางแพ็กเกจมีการปัดเศษที่ถูกต้อง แพ็กเกจ GNU MPFRให้ผลลัพธ์ที่มีความแม่นยำสูงโดยมีการปัดเศษอย่างถูกต้อง ไลบรารีอื่นๆ บางตัวก็มีฟังก์ชันพื้นฐานที่ปัดเศษอย่างถูกต้องในความแม่นยำสองเท่าตามมาตรฐาน IEEE 754 (binary64):
- ml4jของIBMซึ่งย่อมาจากMathematical Library for JavaเขียนโดยAbraham Zivและ Moshe Olshansky ในปี 1999 ปัดเศษให้ใกล้เคียงที่สุดเท่านั้น[ 26 ] [ 27 ]ไลบรารีนี้อ้างว่าพกพาได้ แต่มีเพียงไบนารีสำหรับPowerPC / AIX , SPARC / Solarisและx86 / Windows NT เท่านั้น ตามเอกสารประกอบ ไลบรารีนี้ใช้ขั้นตอนแรกที่มีความแม่นยำสูงกว่าความแม่นยำสองเท่าเล็กน้อย ขั้นตอนที่สองใช้การคำนวณเลขคณิตแบบ double-doubleและขั้นตอนที่สามมีความแม่นยำ 768 บิตโดยใช้อาร์เรย์ของตัวเลขจุดลอยตัวความแม่นยำสองเท่า IEEE 754
- ไลบรารีคณิตศาสตร์แบบพกพาที่แม่นยำของ IBM (เรียกย่อว่า APMathLib หรือ MathLib) [ 28 ] [ 29 ]หรือที่เรียกว่า libultim [ 30 ]สำหรับการปัดเศษให้ใกล้เคียงที่สุดเท่านั้น ไลบรารีนี้ใช้ความแม่นยำในการทำงานสูงสุด 768 บิต มันถูกรวมอยู่ในไลบรารี GNU Cในปี 2001 [ 31 ]แต่ "เส้นทางช้า" (ที่ให้การปัดเศษที่ถูกต้อง) ถูกลบออกตั้งแต่ปี 2018 ถึง 2021
- CRlibm ซึ่งเขียนโดยทีม Arénaire เก่า (LIP, ENS Lyon ) เผยแพร่ครั้งแรกในปี 2546 [ 32 ]รองรับโหมดการปัดเศษ 4 แบบและได้รับการพิสูจน์โดยใช้ความรู้เกี่ยวกับกรณีที่ยากที่สุดในการปัดเศษ[ 33 ] [ 34 ]มีประสิทธิภาพมากกว่า IBM MathLib [ 35 ]ต่อมาได้รับการพัฒนาเป็น Metalibm (2014) ซึ่งทำให้การพิสูจน์อย่างเป็นทางการเป็นไปโดยอัตโนมัติ[ 36 ]
- libmcr ของSun Microsystems ในปี 2004 ในโหมดการปัดเศษ 4 แบบ [ 37 ] [ 38 ]สำหรับกรณีที่ยาก ไลบรารีนี้ยังใช้ความแม่นยำหลายเท่า และจำนวนคำจะเพิ่มขึ้น 2 ทุกครั้งที่เกิดปัญหา Table-maker's dilemma (โดยมีพฤติกรรมที่ไม่แน่นอนในกรณีที่ไม่น่าเป็นไปได้มากที่ถึงขีดจำกัดบางอย่างของเครื่อง)
- โครงการ CORE-MATH (2022) จัดเตรียมฟังก์ชันที่ปัดเศษอย่างถูกต้องบางฟังก์ชันในโหมดการปัดเศษ 4 โหมดสำหรับ โปรเซสเซอร์ x86-64พิสูจน์โดยใช้ความรู้เกี่ยวกับกรณีที่ปัดเศษยากที่สุด[ 39 ] [ 35 ]
- LLVM libc มีฟังก์ชันปัดเศษที่ถูกต้องบางฟังก์ชันในโหมดปัดเศษทั้ง 4 โหมด[ 40 ]
มีจำนวนที่คำนวณได้บางจำนวนซึ่งไม่สามารถหาค่าปัดเศษได้เลย ไม่ว่าจะคำนวณกี่หลักก็ตาม ไม่สามารถยกตัวอย่างเฉพาะเจาะจงได้ แต่เป็นผลมาจากความไม่สามารถตัดสินได้ของปัญหาการหยุดทำงานตัวอย่างเช่น หากสมมติฐานของโกลด์บัคเป็นจริงแต่พิสูจน์ไม่ได้ผลลัพธ์ของการปัดเศษค่าต่อไปนี้nขึ้นเป็นจำนวนเต็มถัดไปจะไม่สามารถหาได้: n = 1 + 10 − kโดยที่kคือจำนวนคู่ตัวแรกที่มากกว่า 4 ซึ่งไม่ใช่ผลรวมของจำนวนเฉพาะสองตัว หรือn = 1 ถ้าไม่มีจำนวนดังกล่าว ผลลัพธ์ของการปัดเศษจะเป็น 2 ถ้ามีจำนวนk ดัง กล่าวอยู่ และเป็น 1 ถ้าไม่มี อย่างไรก็ตาม ค่าก่อนการปัดเศษสามารถประมาณได้ด้วยความแม่นยำใดๆ ก็ตาม แม้ว่าสมมติฐานจะพิสูจน์ไม่ได้ก็ตาม
การโต้ตอบกับการค้นหาสตริง
การปัดเศษอาจส่งผลเสียต่อการค้นหาตัวเลขในสตริง ตัวอย่างเช่นค่า πที่ปัดเศษเป็นสี่หลักคือ "3.1416" แต่การค้นหาสตริงนี้โดยตรงจะไม่พบ "3.14159" หรือค่าπ อื่นๆ ที่ปัดเศษมากกว่าสี่หลัก ในทางตรงกันข้าม การตัดทอนจะไม่ประสบปัญหาดังกล่าว ตัวอย่างเช่น การค้นหาสตริง "3.1415" ซึ่งเป็นค่า πที่ตัดทอนเหลือสี่หลัก จะพบค่าπที่ตัดทอนเหลือมากกว่าสี่หลัก
ประวัติศาสตร์
แนวคิดเรื่องการปัดเศษนั้นมีมานานแล้ว อาจจะเก่าแก่กว่าแนวคิดเรื่องการหารเสียอีกแผ่นดินเหนียวโบราณบางแผ่นที่พบในเมโสโปเต เมีย มีตารางที่มีค่าปัดเศษของส่วนกลับและรากที่สองในฐาน 60 [ 41 ] การประมาณค่าปัดเศษของπความยาวของปี และความยาวของเดือนก็มีมานานแล้วเช่นกัน ดูตัวอย่าง ในฐาน 60
วิธีการ ปัดเศษครึ่งให้เป็นเลขคู่ได้รับการใช้เป็นมาตรฐานอเมริกัน Z25.1 และ มาตรฐาน ASTM E-29 ตั้งแต่ปี 1940 [ 42 ]ที่มาของคำว่าการปัดเศษแบบไม่ลำเอียงและการปัดเศษแบบนักสถิตินั้นค่อนข้างชัดเจน ในหนังสือProbability and Theory of Errors ฉบับที่สี่ ปี 1906 โรเบิร์ต ซิมป์สัน วูดเวิร์ดเรียกสิ่งนี้ว่า "กฎของคอมพิวเตอร์" [ 43 ]ซึ่งบ่งชี้ว่าในขณะนั้นมีการใช้กันอย่างแพร่หลายโดยนักคำนวณที่เป็นมนุษย์ซึ่งคำนวณตารางทางคณิตศาสตร์ ตัวอย่างเช่น มีการแนะนำไว้ใน หนังสือ Logarithmic and Other Mathematical Tablesของไซมอน นิวคอม บ์ ประมาณปี 1882 [ 44 ] หนังสือ Theory of Measurementsปี 1916 ของลูเซียส ทัตเทิลเรียกมันว่า "กฎที่ได้รับการยอมรับอย่างเป็นสากล" สำหรับการบันทึกการวัดทางกายภาพ[ 45 ]เชอร์ชิลล์ ไอเซนฮาร์ตระบุว่าการปฏิบัตินี้ "ได้รับการยอมรับอย่างดี" แล้วในการวิเคราะห์ข้อมูลในช่วงทศวรรษ 1940 [ 46 ]
ที่มาของคำว่าการปัดเศษของธนาคารยังคงคลุมเครือ หากวิธีการปัดเศษนี้เคยเป็นมาตรฐานในการธนาคาร หลักฐานก็พิสูจน์ได้ว่าหาได้ยากมาก ในทางตรงกันข้าม ส่วนที่ 2 ของรายงานคณะกรรมาธิการยุโรปเรื่องการนำเงินยูโรมาใช้และการปัดเศษจำนวนเงิน[ 47 ]ชี้ให้เห็นว่าก่อนหน้านี้ไม่มีแนวทางมาตรฐานในการปัดเศษในการธนาคาร และระบุว่าจำนวนเงิน "ครึ่งทาง" ควรปัดขึ้น
จนกระทั่งถึงช่วงทศวรรษ 1980 วิธีการปัดเศษที่ใช้ในการคำนวณเลขทศนิยมมักถูกกำหนดโดยฮาร์ดแวร์ มีเอกสารอธิบายที่ไม่ดี ไม่สม่ำเสมอ และแตกต่างกันไปตามแต่ละยี่ห้อและรุ่นของคอมพิวเตอร์ สถานการณ์นี้เปลี่ยนไปหลังจากที่มาตรฐานเลขทศนิยม IEEE 754 ได้รับการยอมรับจากผู้ผลิตคอมพิวเตอร์ส่วนใหญ่ มาตรฐานนี้อนุญาตให้ผู้ใช้เลือกโหมดการปัดเศษได้หลายแบบ และในแต่ละกรณีจะระบุอย่างแม่นยำว่าควรปัดเศษผลลัพธ์อย่างไร คุณสมบัติเหล่านี้ทำให้การคำนวณเชิงตัวเลขคาดการณ์ได้ง่ายขึ้นและไม่ขึ้นอยู่กับเครื่องคอมพิวเตอร์ และทำให้สามารถใช้งานการคำนวณเลขช่วงได้ อย่างมีประสิทธิภาพและสม่ำเสมอ
ปัจจุบัน งานวิจัยจำนวนมากมักจะปัดเศษเป็นทวีคูณของ 5 หรือ 2 ตัวอย่างเช่นJörg Batenใช้การเรียงอายุแบบกลุ่มในงานวิจัยหลายชิ้นเพื่อประเมินระดับความรู้ทางคณิตศาสตร์ของประชากรโบราณ เขาคิดค้นดัชนี ABCCซึ่งทำให้สามารถเปรียบเทียบความรู้ทางคณิตศาสตร์ ระหว่างภูมิภาคได้โดยไม่ต้องมีแหล่งข้อมูลทางประวัติศาสตร์ใดๆ ที่ วัดความรู้ทางคณิตศาสตร์ของประชากร[ 48 ]
ฟังก์ชันการปัดเศษในภาษาโปรแกรม
ภาษาโปรแกรมส่วนใหญ่มีฟังก์ชันหรือไวยากรณ์พิเศษสำหรับการปัดเศษจำนวนทศนิยมในรูปแบบต่างๆ ภาษาโปรแกรมเชิงตัวเลขรุ่นแรกๆ เช่นFortranและCจะมีเพียงวิธีเดียว ซึ่งโดยปกติคือการตัดทิ้ง (เข้าหาศูนย์) วิธีเริ่มต้นนี้อาจถูกใช้โดยปริยายในบางบริบท เช่น เมื่อกำหนดค่าจำนวนทศนิยมให้กับตัวแปรจำนวนเต็ม หรือใช้จำนวนทศนิยมเป็นดัชนีของอาร์เรย์การปัดเศษแบบอื่นๆ ต้องเขียนโปรแกรมอย่างชัดเจน ตัวอย่างเช่น การปัดเศษจำนวนบวกให้เป็นจำนวนเต็มที่ใกล้ที่สุดสามารถทำได้โดยการบวก 0.5 แล้วตัดทิ้ง
อย่างไรก็ตาม ในช่วงหลายทศวรรษที่ผ่านมา ไวยากรณ์และไลบรารี มาตรฐาน ของภาษาโปรแกรมส่วนใหญ่ได้จัดเตรียมฟังก์ชันการปัดเศษพื้นฐานอย่างน้อยสี่ฟังก์ชัน (ปัดขึ้น ปัดลง ปัดเข้าหาจำนวนที่ใกล้เคียงที่สุด และปัดเข้าหาศูนย์) วิธีการแก้ปัญหาค่าเท่ากันอาจแตกต่างกันไปขึ้นอยู่กับภาษาและเวอร์ชัน หรืออาจเลือกได้โดยโปรแกรมเมอร์ ภาษาโปรแกรมหลายภาษาปฏิบัติตามมาตรฐานจุดลอยตัว IEEE 754 และกำหนดฟังก์ชันเหล่านี้ให้รับ อาร์กิวเมนต์เป็นเลขทศนิยมแบบ ความแม่นยำสองเท่าและส่งคืนผลลัพธ์ที่มีชนิดเดียวกัน ซึ่งอาจแปลงเป็นจำนวนเต็มได้หากจำเป็น วิธีนี้อาจหลีกเลี่ยงการโอเวอร์โฟลว์ ที่ไม่จำเป็นได้ เนื่องจากชนิดข้อมูลจุดลอยตัวมีช่วงที่กว้างกว่าชนิดข้อมูลจำนวนเต็ม ภาษาบางภาษา เช่นPHPมีฟังก์ชันที่ปัดเศษค่าให้เหลือจำนวนหลักทศนิยมที่กำหนด (เช่น จาก 4321.5678 เป็น 4321.57 หรือ 4300) นอกจากนี้ ภาษาโปรแกรมหลายภาษายังมี ฟังก์ชัน printfหรือฟังก์ชันจัดรูปแบบสตริงที่คล้ายกัน ซึ่งช่วยให้สามารถแปลงเลขทศนิยมเป็นสตริงที่ปัดเศษตามจำนวนหลักทศนิยมที่ผู้ใช้กำหนด ( ความแม่นยำ ) ได้ ในทางกลับกัน การตัดทิ้ง (ปัดเศษเป็นศูนย์) ยังคงเป็นวิธีการปัดเศษเริ่มต้นที่ใช้กันในหลายภาษา โดยเฉพาะอย่างยิ่งสำหรับการหารจำนวนเต็มสองจำนวน
ในทางตรงกันข้ามCSSและSVGไม่ได้กำหนดความแม่นยำสูงสุดเฉพาะสำหรับตัวเลขและการวัดใดๆ ซึ่งพวกมันจะจัดการและเปิดเผยในDOMและใน อินเทอร์เฟซ IDL ของพวกมัน เป็นสตริงราวกับว่ามีความแม่นยำอนันต์และไม่แยกแยะระหว่างจำนวนเต็มและค่าจุดลอยตัว อย่างไรก็ตาม การใช้งานของภาษาเหล่านี้โดยทั่วไปจะแปลงตัวเลขเหล่านี้เป็นค่าจุดลอยตัวความแม่นยำสองเท่า IEEE 754 ก่อนที่จะเปิดเผยตัวเลขที่คำนวณได้ด้วยความแม่นยำที่จำกัด (โดยเฉพาะอย่างยิ่งภายใน การผูกอินเทอร์เฟซ JavaScriptหรือECMAScript [ 49 ] มาตรฐาน )
มาตรฐานการปัดเศษอื่นๆ
บางสาขาวิชาหรือสถาบันได้ออกมาตรฐานหรือข้อกำหนดเกี่ยวกับการปัดเศษตัวเลข
การสังเกตการณ์สภาพอากาศของสหรัฐอเมริกา
ในแนวทางที่ออกในช่วงกลางปี 1966 [ 50 ]สำนักงาน ประสานงานของรัฐบาลกลาง สหรัฐฯด้านอุตุนิยมวิทยาได้กำหนดว่าข้อมูลสภาพอากาศควรปัดเศษให้เป็นจำนวนเต็มที่ใกล้ที่สุด โดยใช้กฎการ "ปัดขึ้นครึ่งหนึ่ง" ในกรณีที่มีค่าเท่ากัน ตัวอย่างเช่น 1.5 เมื่อปัดเศษเป็นจำนวนเต็มควรเป็น 2 และ −1.5 ควรเป็น −1 ก่อนหน้านั้น กฎการตัดสินในกรณีที่มีค่าเท่ากันคือ "ปัดเศษออกจากศูนย์ครึ่งหนึ่ง"
ศูนย์ลบในทางอุตุนิยมวิทยา
นักอุตุนิยมวิทยาบางคนอาจเขียน "−0" เพื่อระบุอุณหภูมิระหว่าง 0.0 ถึง −0.5 องศา (ไม่รวมค่านี้) ซึ่งปัดเศษเป็นจำนวนเต็ม การใช้สัญลักษณ์นี้หมายถึงการใช้เครื่องหมายลบเมื่อพิจารณาว่าเครื่องหมายลบมีความสำคัญ ไม่ว่าขนาดของค่าลบจะน้อยเพียงใดก็ตาม ตัวอย่างเช่น เมื่อปัดเศษอุณหภูมิใน มาตราส่วน เซลเซียสซึ่งต่ำกว่าศูนย์หมายถึงจุดเยือกแข็ง
ค่าศูนย์ลบในการคำนวณ
การแสดงผลตัวเลขด้วยคอมพิวเตอร์บางรูปแบบ รวมถึงการแสดงผลแบบจุดลอยตัวจะแยกความแตกต่างระหว่าง0 (หรือ+0 ) และ−0ดังนั้น การปัดเศษจากจำนวนลบไป เป็น 0อาจปัดไปเป็น−0แทนที่จะเป็น +0
ดูเพิ่มเติม
- การปัดเศษเงินสด – การปัดเศษหนี้สินให้เป็นมูลค่าเงินสดที่ต่ำที่สุด โดยคำนึงถึงกรณีที่ไม่มีเหรียญที่มีมูลค่าต่ำมาก ๆ
- การจัดกลุ่มข้อมูล (Data binning) – เทคนิคการประมวลผลข้อมูลเบื้องต้น ซึ่งเป็นการดำเนินการที่คล้ายคลึงกัน
- ตารางที่แม่นยำของกัล
- ตัวเลขป้องกัน
- เลขคณิตช่วง – วิธีการจำกัดขอบเขตความคลาดเคลื่อนของการคำนวณเชิงตัวเลข
- ISO/IEC 80000 – มาตรฐานสากลว่าด้วยปริมาณทางกายภาพและหน่วยวัด
- อัลกอริทึมการหาผลรวมของคาฮาน – อัลกอริทึมในการวิเคราะห์เชิงตัวเลข
- ระบบ การเลือกตั้งแบบบัญชีรายชื่อตามสัดส่วน – กลุ่มของระบบการเลือกตั้ง
- การแทนค่าด้วยตัวเลขที่มีเครื่องหมาย – ระบบตัวเลขแบบตำแหน่งที่มีตัวเลขที่มีเครื่องหมาย การแทนค่าอาจไม่ซ้ำกัน
- การตัดทศนิยม – ในทางคณิตศาสตร์ หมายถึงการจำกัดจำนวนหลักทางด้านขวาของจุดทศนิยม
หมายเหตุ
- ^สิ่งนี้จำเป็น เช่น [1] สำหรับการจัดสรรที่นั่งซึ่งดำเนินการโดยวิธีเศษเหลือที่ใหญ่ที่สุด เช่น ดูคณิตศาสตร์ของการจัดสรรและ [2] สำหรับการกระจายภาษีมูลค่าเพิ่ม ทั้งหมด ของใบแจ้งหนี้ไปยังรายการต่างๆ)
- ^กรณีที่การปัดเศษสองครั้งให้ค่าเท่ากับการปัดเศษโดยตรงให้ได้ความแม่นยำสุดท้ายเสมอ คือเมื่อฐานเป็นเลขคี่
ลิงก์ภายนอก
- ไวส์สไตน์, เอริค ดับเบิลยู. "การปัดเศษ" . แมธเวิลด์ .
- บทนำเกี่ยวกับอัลกอริธึมการปัดเศษแบบต่างๆที่เข้าใจง่ายสำหรับบุคคลทั่วไป แต่มีประโยชน์อย่างยิ่งสำหรับผู้ที่ศึกษาด้านวิทยาการคอมพิวเตอร์และอิเล็กทรอนิกส์
- วิธีใช้งานขั้นตอนการปัดเศษแบบกำหนดเองของ Microsoft (ใช้งานไม่ได้)
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การปัดเศษ
การปัดเศษ หรือ การปัดลง คือกระบวนการปรับ ตัวเลข ให้ เป็น ค่า โดยประมาณ ที่สะดวกกว่า โดยมักจะมีรูปแบบที่สั้นกว่าหรือเรียบง่ายกว่า ตัวอย่างเช่น การแทนที่ 23.4476 ดอลลาร์ด้วย 23.
การปัดเศษเป็นจำนวนเต็ม
รูปแบบพื้นฐานที่สุดของการปัดเศษคือการแทนที่ตัวเลขใดๆ ด้วยจำนวนเต็ม โหมดการปัดเศษทั้งหมดต่อไปนี้เป็นการนำขั้นตอน "round()" ที่มีอาร์กิวเมนต์เดียวมาใช้ในรูปแบบที่เป็นรูปธรรม ฟังก์ชันเหล่านี้เป็นฟังก์ชันที่แท้จริง (ยกเว้นฟังก์ชันที่ใช้ค่าสุ่ม)
การปัดเศษแบบกำหนดทิศทางให้เป็นจำนวนเต็ม
วิธีการทั้งสี่นี้เรียกว่า การปัดเศษแบบมีทิศทางไปยังจำนวนเต็ม เนื่องจากค่าที่ปัดจากจำนวนเดิม x ไปยังค่าที่ปัดแล้ว y นั้นมีทิศทางเข้าหาหรือออกจากค่าจำกัดเดียวกัน (0, +∞ หรือ −∞ ) การปัดเศษแบบมีทิศทางใช้ใน เลขคณิตช่วง และมักจำเป็นในการคำนวณทางการเงิน
ปัดเศษให้เป็นจำนวนเต็มที่ใกล้ที่สุด
วิธีการทั้งหกนี้เรียกว่า การปัดเศษให้เป็นจำนวนเต็มที่ใกล้ที่สุด การปัดเศษจำนวน x ให้เป็นจำนวนเต็มที่ใกล้ที่สุดนั้น จำเป็นต้องมีกฎการแก้ปัญหาในกรณีที่ x อยู่กึ่งกลางระหว่างจำนวนเต็มสองจำนวนพอดี นั่นคือ เมื่อส่วนที่เป็นเศษส่วนของ x มีค่าเท่ากับ 0.5 พอดี