Ruby 在使用整数和浮点数时如何解释指数?

How does Ruby interpret exponents when using integers vs floats?

下面是我所问问题的示例:

我只是好奇 Ruby 如何解释这些问题,就 Ruby 而言,这些问题显然不同。当我试图在不使用浮点数的情况下编写一个简单的数学问题时,我变得很好奇,并注意到 Ruby 读取浮点数的方式与整数对应的方式不同(也许 1/2 不是 就 Ruby 而言,0.5 是对应的,但这是我在这里要问的部分内容:为什么不呢?)。

谁能解释一下这是怎么回事?

17424 ** 1 / 2
    17424  / 2
         8712


17424 ** (1/2)
17424 **   0
      1
两个整数的

/是一个整数。另见:Why is division in Ruby returning an integer instead of decimal value?

  • 17424 ** 1 / 2 被解释为 (17424 ** 1) / 2,也就是 17424/2

  • 17424 ** (1 / 2) 是违反直觉的,因为 1 / 2 实际上是 0,而不是 0.5。这是因为当您除以整数时,结果的小数点会被截断。您可以将其中一个操作数(或两者)更改为浮点数以解决此问题:17424 ** (1.0 / 2)