Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 为什么'27**(1.0/3.0)`不同于'27**(1/3)`?_Ruby - Fatal编程技术网

Ruby 为什么'27**(1.0/3.0)`不同于'27**(1/3)`?

Ruby 为什么'27**(1.0/3.0)`不同于'27**(1/3)`?,ruby,Ruby,请让我知道这是否是获得立方根的正确方法 我不明白为什么 27 ** (1.0/3.0) #=> 3 不同于 27 ** (1/3) #=> 1 第一个除法是十进制除法,而后者是整数除法 也就是说,1.0/3.0将产生一个十进制结果,而1/3将产生一个整数结果,在这种情况下,i0 因此,结果会有所不同,因为这是两者的结果 27**0.333... 或 当然,这两者显然是不同的 强制其中一个运算符为十进制就足以使整个操作产生十进制结果,例如,1/3.0将产生0.3333…(1/3

请让我知道这是否是获得立方根的正确方法

我不明白为什么

27 ** (1.0/3.0) #=> 3 
不同于

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

第一个除法是十进制除法,而后者是整数除法

也就是说,
1.0/3.0
将产生一个十进制结果,而
1/3
将产生一个整数结果,在这种情况下,i
0

因此,结果会有所不同,因为这是两者的结果

27**0.333...

当然,这两者显然是不同的

强制其中一个运算符为十进制就足以使整个操作产生十进制结果,例如,1/3.0将产生0.3333…

(1/3)
返回
0
,因为
3
是整数。在ruby中,如果对除数和被除数都使用整数进行除法,则会得到一个整数值。由于任何提升到
0
的值都是
1
,因此您将得到
1
作为答案


(1.0/3.0)
返回
0.3333
,因为您没有除以2个整数,所以从
27**0.33…
中得到
3

整数除法结果为整数:

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.0 / 3.0 # => 0.3333333333333333
27 ** 0.333 # => 2.9967059728946346

1 / 3 # => 0
27 ** 0 # => 1
第二个例子是整数除法。一个有多少个三?零。幂为0的任何数字都是1

键入对话

当计算1.0/3.0时,它是十进制的

这是1.0/3.0=0.33#这是一个小数

1/3-它舍入到最接近的整数

因此:


@对所有的回应者:哇,多么激烈的比赛啊。请不要饿着肚子问问题作者:)
1.0 / 3.0 # => 0.3333333333333333
27 ** 0.333 # => 2.9967059728946346

1 / 3 # => 0
27 ** 0 # => 1
27 ** (1.0/3.0) #=> 3 
is different from
27 ** (1/3) #=> 1