C や C++ のように
double x
ルビーでそれを行う方法は?
または、フロート型になりますか?
走りたい
x=5/2
それから
x=2.5
それ以外の
x=2
少なくとも 1 つのオペランドが float の場合、結果も float になります。
5 / 2.0 # => 2.5
Ruby では、小数点を指定して float を作成します。
2 #=> integer
2.0 #=> float
整数を別の整数で割ると、整数が得られます。除算でフロートを使用する必要があります。
5 / 2 #=> 2
5.0 / 2 #=> 2.5
5 / 2.0 #=> 2.5
Ruby は動的に型付けされるため、変数を特定の型にキャストする明示的な方法はありません。例えば:
a = "a" # here a is a String
a = 5 # now a is a Fixnum
a = 5.0 # now a is a Float
完全に有効です。
では、あなたが言うとどうなります5/2
か?Ruby は/
、最初のオペランド (この場合は整数) で演算子を検索し、2 番目のオペランド (これも整数) で関数を呼び出します。したがって、Ruby は整数除算が必要であると想定します。
解決策は、演算子の 1 つを float にすることです。これには、少なくとも 2 つの方法があります。
5 / 2.0
また
5 / 2.to_f
Ruby では変数に型がなく、オブジェクトだけが型を持ちます。(そして、「タイプ」の概念は潜在的であり、プログラムでは明示されていません。オブジェクトの「タイプ」は、それが話すプロトコル、つまり、オブジェクトが応答するメッセージと、それらのメッセージにオブジェクトがどのように応答するかです。特に、オブジェクトの型はそのクラスではありません。)