BigDecimal
コンストラクターは、オブジェクトの精度桁数を指定するオプションの 2 番目のパラメーターを取ります。ruby-docから:
new(頭文字、数字)
Fixnum としての有効桁数。省略または 0 の場合、有効桁数は初期値から決定されます。
ただし、文字列を操作する場合、この動作は説明と一致しません。
BigDecimal.new('1.2345', 4).to_s('F')
# 1.2345
BigDecimal.new('1.2345', 1).to_s('F')
# 1.2345
String パラメータを使用するときに BigDecimal で精度を指定する方法は?