4

これが立方根を取得する正しい方法かどうか教えてください。

理由がわかりません

27 ** (1.0/3.0) #=> 3 

とは異なります

27 ** (1/3) #=> 1
4

5 に答える 5

11
1.0 / 3.0 # => 0.3333333333333333
27 ** 0.333 # => 2.9967059728946346

1 / 3 # => 0
27 ** 0 # => 1

2つ目は、整数除算の例です。1つに3つはいくつありますか?零。累乗0の任意の数は1です。

于 2013-03-13T07:58:57.893 に答える
4

最初の除算は10進数の除算で、後者は整数の除算です。

つまり1.0/3.0、10進数の結果1/3が生成されますが、整数の結果が生成されます。この場合はi0

どちらかの結果であるため、結果は異なります。

27**0.333...

また

27**0

もちろん、これは明らかに異なります。

操作全体で演算子の1つを10進数にするだけで、10進数の結果が得られます。たとえば、1/3.0では0.3333が得られます...

于 2013-03-13T07:58:00.210 に答える
4

整数の除算は整数になります。

irb(main):004:0> 1/3
=> 0
irb(main):005:0> 1.0/3.0
=> 0.3333333333333333

27**0 = 127**(1/3) = 3

于 2013-03-13T07:58:21.960 に答える
3

(1/3)は整数である0ため、を返します。3ルビーでは、除数と被除数の両方に整数を使用して除算すると、整数値が得られます。そして、に上げられたものは何でも0あるので1、あなた1は答えとして得ます

(1.0/3.0)2つの整数を除算0.3333していないため327 ** 0.33...

于 2013-03-13T07:58:02.437 に答える
0

会話を入力します。

1.0/3.0 を計算すると - 10 進数です

これは 1.0/3.0 = 0.33 # これは小数です

1/3 - 最も近い整数に丸めます。

したがって:

27 ** (1.0/3.0) #=> 3 
is different from
27 ** (1/3) #=> 1
于 2013-03-13T08:29:06.947 に答える