PHP怪异的数学

Kyl*_*yle 4 php math variables

我为变量计算得到了意外的值:

$var1 = $var2 * (((1 + $var3)^$var4)^$var5);
Run Code Online (Sandbox Code Playgroud)

我已经验证$var2是3,$var3是0.1,$var4是1,$var5是1.1所以,

$var1 = 3*(((1+0.1)^1)^1.1) = 3.3316 但在PHP中, $var1 = 3

如果我$var4改为2,

$var1 = 3*(((1+0.1)^1)^1.1) = 3.6999 但在PHP中, $var1 = 6

为什么是这样?有任何想法吗?我已经尝试将所有变量明确声明为浮点数.

aio*_*obe 13

请注意,这^不是"权力".你可能想看看pow功能.

(^实际上是" 按位排他"或 ".")

  • 来吧,足够的投票.这不是火箭科学.;) (8认同)
  • 这引发了许多PHP新手(甚至还有一些经验丰富的人不时). (3认同)
  • `^`是按位异或运算符:http://php.net/manual/en/language.operators.bitwise.php (2认同)