Rational と BigDecimal
正確な算術演算です。
「Rational と BigDecimal」はCoddyKit上の無料Ruby Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはRuby Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ruby Academyコースには全4レッスンが含まれています。
正確な算術演算が必要な理由
浮動小数点数では精度が失われます。金額や分数を扱うために、Rubyには正確な値を保つRationalとBigDecimalがあります。
puts 0.1 + 0.2Rationalの作成
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.denominatorRationalの変換
小数による近似値が必要な場合は、to_fでRationalを浮動小数点数に変換します。
puts Rational(1, 8).to_fBigDecimalの読み込み
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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 整数と浮動小数点数
- 算術演算と演算子
- Math モジュール
- Rational と BigDecimal