2

C や C++ のように

double x

ルビーでそれを行う方法は?

または、フロート型になりますか?

走りたい

x=5/2

それから

x=2.5

それ以外の

x=2
4

5 に答える 5

8

少なくとも 1 つのオペランドが float の場合、結果も float になります。

5 / 2.0 # => 2.5
于 2013-05-15T11:26:19.987 に答える
4

Ruby では、小数点を指定して float を作成します。

2 #=> integer
2.0 #=> float

整数を別の整数で割ると、整数が得られます。除算でフロートを使用する必要があります。

5 / 2   #=> 2
5.0 / 2 #=> 2.5
5 / 2.0 #=> 2.5
于 2013-05-15T11:27:47.413 に答える
2

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

于 2013-05-15T11:30:00.533 に答える
1

Ruby では変数に型がなく、オブジェクトだけが型を持ちます。(そして、「タイプ」の概念は潜在的であり、プログラムでは明示されていません。オブジェクトの「タイプ」は、それが話すプロトコル、つまり、オブジェクトが応答するメッセージと、それらのメッセージにオブジェクトがどのように応答するかです。特に、オブジェクトの型はそのクラスではありません。)

于 2013-05-15T11:53:54.657 に答える