アルゴリズムが動かなくて頭を抱えていたのですが、
"ceil"と"floor"を使い間違えていただけでした。
使うタイミングも多々あると思うので整理してみました。
#少数点切り捨て
例
puts 1.1.floor
puts 1.9.floor
puts -1.1.floor
puts -1.9.floor
#小数点切り上げ
例
puts 1.1.ceil
puts 1.9.ceil
puts -1.1.ceil
puts -1.9.ceil
#四捨五入
例
puts 1.1.round
puts 1.9.round
puts -1.1.round
puts -1.9.round
#少数点を表示させる
例
puts 1.to_f
puts -1.to_f
require 'bigdecimal'
"BigDecimal"というライブラリを使って計算していくらしいです。
"Decimal"は直訳だと"10進数"みたいです。
そして引数はStringでないとダメらしく、".to_s"も必要みたいです。
リファレンス読んでもなかなか難しそう・・・・ 、詳しくは参考記事を参照ください
https://docs.ruby-lang.org/ja/latest/library/bigdecimal.html
参考記事
https://qiita.com/yusabana/items/fd4a0185c1f120403a74
https://qiita.com/jnchito/items/d0ef71b25732ad5a881c
#まとめ
生前前から存在する電卓の偉大さを思い知りました・・・。
最後はデータサイエンス的な要素も少し感じましたが、前半部分はしっかりと活用してアルゴリズムを記述できるようにしておきたいです。