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)
下面是我所问问题的示例:
我只是好奇 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/217424 ** (1 / 2)
是违反直觉的,因为1 / 2
实际上是0
,而不是0.5
。这是因为当您除以整数时,结果的小数点会被截断。您可以将其中一个操作数(或两者)更改为浮点数以解决此问题:17424 ** (1.0 / 2)