0Pricing
Ruby Academy · บทเรียน

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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. จำนวนเต็มและจำนวนทศนิยม
  2. เลขคณิตและตัวดำเนินการ
  3. มอดูล Math
  4. Rational และ BigDecimal
← กลับไปที่ Ruby Academy