0Pricing
Ruby Academy · レッスン

Rational と BigDecimal

正確な算術演算です。

「Rational と BigDecimal」はCoddyKit上の無料Ruby Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはRuby Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ruby Academyコースには全4レッスンが含まれています。

正確な算術演算が必要な理由

浮動小数点数では精度が失われます。金額や分数を扱うために、Rubyには正確な値を保つRationalとBigDecimalがあります。

puts 0.1 + 0.2

Rationalの作成

Rationalは正確な分数です。rサフィックスまたはRational(num, den)を使って記述します。

puts (1r / 3)
puts Rational(2, 4)

Rationalは自動的に約分される

Rationalは自動的に既約分数まで約分されるため、2/4は1/2になります。

puts Rational(6, 8)
puts Rational(10, 5)

正確な分数の計算

Rationalの加算は、浮動小数点数とは異なり正確なままです。3分の1を3つ足すと、正確に1になります。

third = Rational(1, 3)
puts (third + third + third)

分子と分母

numeratorとdenominatorで分数の各部分を読み取れます。

r = Rational(3, 4)
puts r.numerator
puts r.denominator

Rationalの変換

小数による近似値が必要な場合は、to_fでRationalを浮動小数点数に変換します。

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の丸め

BigDecimalに対するroundは、小数点以下の桁数を正確に制御します。

require "bigdecimal"
n = BigDecimal("2.675")
puts n.round(2).to_s("F")

適切なツールを選ぶ

正確な分数や比率にはRationalを使います。正確な小数による金額の計算にはBigDecimalを使います。多少の誤差が許容される高速な科学計算にはFloatを使います。

require "bigdecimal"
puts Rational(1, 3)
puts BigDecimal("0.33").to_s("F")

クイックチェック

正確な算術を確認します。

まとめ

正確な算術について学びました。

  • 自動的に簡約される正確な分数にはRational
  • numerator、denominator、to_f
  • 正確な金額の計算には文字列から生成したBigDecimal
  • 用途に合った型を選ぶ

これでRubyの数値と数学のコースは完了です。

puts (Rational(1, 2) + Rational(1, 3))

よくある質問

「Rational と BigDecimal」レッスンは無料ですか?

はい。「Rational と BigDecimal」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ruby Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ruby Academyコースには全4レッスンが含まれています。

「Rational と BigDecimal」で何を学びますか?

正確な算術演算です。 ブラウザで直接実行するハンズオンコードでRuby Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Ruby Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのRuby Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「Rational と BigDecimal」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このRuby Academyレッスンでコードを書いて実行できますか?

はい。すべてのRuby Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 整数と浮動小数点数
  2. 算術演算と演算子
  3. Math モジュール
  4. Rational と BigDecimal
← Ruby Academyに戻る