これが立方根を取得する正しい方法かどうか教えてください。
理由がわかりません
27 ** (1.0/3.0) #=> 3
とは異なります
27 ** (1/3) #=> 1
1.0 / 3.0 # => 0.3333333333333333
27 ** 0.333 # => 2.9967059728946346
1 / 3 # => 0
27 ** 0 # => 1
2つ目は、整数除算の例です。1つに3つはいくつありますか?零。累乗0の任意の数は1です。
最初の除算は10進数の除算で、後者は整数の除算です。
つまり1.0/3.0
、10進数の結果1/3
が生成されますが、整数の結果が生成されます。この場合はi0
どちらかの結果であるため、結果は異なります。
27**0.333...
また
27**0
もちろん、これは明らかに異なります。
操作全体で演算子の1つを10進数にするだけで、10進数の結果が得られます。たとえば、1/3.0では0.3333が得られます...
整数の除算は整数になります。
irb(main):004:0> 1/3
=> 0
irb(main):005:0> 1.0/3.0
=> 0.3333333333333333
27**0 = 1
。27**(1/3) = 3
(1/3)
は整数である0
ため、を返します。3
ルビーでは、除数と被除数の両方に整数を使用して除算すると、整数値が得られます。そして、に上げられたものは何でも0
あるので1
、あなた1
は答えとして得ます
(1.0/3.0)
2つの整数を除算0.3333
していないため3
、27 ** 0.33...
会話を入力します。
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