Rational และ BigDecimal
การคำนวณที่แม่นยำ
Rational และ BigDecimal เป็นบทเรียน Ruby Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ruby Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดจึงต้องคำนวณแบบแม่นยำ
จำนวนทศนิยมสูญเสียความแม่นยำ สำหรับเงินและเศษส่วน Ruby มีจำนวนตรรกยะและ BigDecimal ซึ่งรักษาความแม่นยำไว้ได้
puts 0.1 + 0.2การสร้างจำนวนตรรกยะ
จำนวนตรรกยะคือเศษส่วนที่มีค่าแม่นยำ เขียนได้โดยใช้ส่วนต่อท้าย r หรือ Rational(num, den)
puts (1r / 3)
puts Rational(2, 4)จำนวนตรรกยะย่อรูปอัตโนมัติ
จำนวนตรรกยะจะลดรูปเป็นรูปอย่างต่ำโดยอัตโนมัติ ดังนั้น 2/4 จึงกลายเป็น 1/2
puts Rational(6, 8)
puts Rational(10, 5)การคำนวณเศษส่วนแบบแม่นยำ
การบวกจำนวนตรรกยะยังคงแม่นยำ ต่างจากจำนวนทศนิยม หนึ่งส่วนสามบวกหนึ่งส่วนสามบวกหนึ่งส่วนสามมีค่าเท่ากับหนึ่งพอดี
third = Rational(1, 3)
puts (third + third + third)ตัวเศษและตัวส่วน
อ่านส่วนประกอบต่าง ๆ ด้วย numerator และ denominator
r = Rational(3, 4)
puts r.numerator
puts r.denominatorการแปลงจำนวนตรรกยะ
to_f แปลงจำนวนตรรกยะเป็นจำนวนทศนิยมเมื่อคุณต้องการค่าประมาณในรูปทศนิยม
puts Rational(1, 8).to_fการโหลด BigDecimal
BigDecimal จัดการเลขทศนิยมแบบแม่นยำ เหมาะอย่างยิ่งสำหรับเงิน ก่อนอื่นให้เรียกใช้จากไลบรารีมาตรฐาน
require "bigdecimal"
a = BigDecimal("0.1")
b = BigDecimal("0.2")
puts (a + b).to_s("F")ใช้สตริงเสมอ
สร้าง BigDecimal จากสตริง ไม่ใช่จำนวนทศนิยมแบบลอยตัว เพื่อไม่ให้สูญเสียความแม่นยำตั้งแต่เริ่มต้น
require "bigdecimal"
good = BigDecimal("1.1")
puts good.to_s("F")การคำนวณเงิน
BigDecimal รักษาค่าหน่วยเซนต์ให้แม่นยำตลอดการดำเนินการหลายรายการ
require "bigdecimal"
price = BigDecimal("19.99")
qty = 3
total = price * qty
puts total.to_s("F")การปัดเศษ BigDecimal
round บน BigDecimal ควบคุมจำนวนตำแหน่งทศนิยมได้อย่างแม่นยำ
require "bigdecimal"
n = BigDecimal("2.675")
puts n.round(2).to_s("F")การเลือกเครื่องมือที่เหมาะสม
ใช้จำนวนตรรกยะสำหรับเศษส่วนและอัตราส่วนที่ต้องการความแม่นยำ ใช้ BigDecimal สำหรับจำนวนเงินในรูปทศนิยมที่ต้องการความแม่นยำ ใช้จำนวนทศนิยมแบบลอยตัวสำหรับงานวิทยาศาสตร์ที่ต้องการความเร็วและยอมรับความคลาดเคลื่อนเล็กน้อยได้
require "bigdecimal"
puts Rational(1, 3)
puts BigDecimal("0.33").to_s("F")ตรวจสอบอย่างรวดเร็ว
ตรวจสอบการคำนวณแบบแม่นยำ
สรุปทบทวน
คุณได้เรียนรู้การคำนวณแบบแม่นยำ:
- จำนวนตรรกยะสำหรับเศษส่วนที่แม่นยำและย่อรูปอัตโนมัติ
numerator,denominator,to_f- BigDecimal ที่สร้างจากสตริงสำหรับการคำนวณเงินอย่างแม่นยำ
- เลือกชนิดข้อมูลให้เหมาะกับงาน
เท่านี้ก็จบหลักสูตรตัวเลขและคณิตศาสตร์ใน Ruby แล้ว
puts (Rational(1, 2) + Rational(1, 3))คำถามที่พบบ่อย
บทเรียน “Rational และ BigDecimal” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “Rational และ BigDecimal” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ruby Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “Rational และ BigDecimal”
การคำนวณที่แม่นยำ คุณปฏิบัติ Ruby Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ruby Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ruby Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “Rational และ BigDecimal” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Ruby Academy นี้ได้ไหม
ได้ บทเรียน Ruby Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- จำนวนเต็มและจำนวนทศนิยม
- เลขคณิตและตัวดำเนินการ
- มอดูล Math
- Rational และ BigDecimal