小数で作業する必要があります。私のプログラムでは、ユーザーはその数値を変換するために小数付きの数値を入力する必要があります。
問題は、引数を数値に変換しようとすると、小数のない整数が得られることです。
# ARGV[0] is: 44.33
size = ARGV[0]
puts size.to_i
# size is: 44
# :(
また、decimalクラスを使用することもできます
a = '2.45'
Decimal(a) # => 2.45
更新:
前述の@ bigtex777としてbigdecimalを使用します。
ソース: http://Ruby-doc.org/stdlib-2.2.2/libdoc/bigdecimal/rdoc/BigDecimal.html
このようなバグを回避するために計算でより正確な答えが必要な場合は、 https://www.codecademy.com/en/forum_questions/50fe886f68fc44056f00626c 10進数への変換の例を使用できます。
require 'bigdecimal'
require 'bigdecimal/util'
size = ARGV[0]
size = size.to_d
これにより、印刷された数値が10進数になりますが、再度浮動小数点数にしたい場合は、このto_fをもう一度入力してください
size=size.to_f
puts size
大文字の変換方法は、十分に確立されたRubyイディオムです。 Advi Grimmのこの素晴らしい投稿を参照
Integer("641339524823408659")
=> 641339524823408659