做什么应该是PHP 7中的一个直接计算。下面从不产生浮点数结果。运行var_dump($C)
回报int(2)
浮点数返回整型 - PHP 7
$A = 0.04;
$B = 0.20;
$C = 3*($A/$B)^2;
echo $C;
我不需要的结果是float类型,我需要的精度。
我试过使用ini_set('precision', n)
来设置精度。我已经尝试了三种环境下的代码并获得相同的结果。声明(float)
也是行不通的。
我在做什么错?
做什么应该是PHP 7中的一个直接计算。下面从不产生浮点数结果。运行var_dump($C)
回报int(2)
浮点数返回整型 - PHP 7
$A = 0.04;
$B = 0.20;
$C = 3*($A/$B)^2;
echo $C;
我不需要的结果是float类型,我需要的精度。
我试过使用ini_set('precision', n)
来设置精度。我已经尝试了三种环境下的代码并获得相同的结果。声明(float)
也是行不通的。
我在做什么错?
3*($A/$B)^2
手段3 * (A/B) XOR 2
(^
意味着xor
),所以bascially您所看到的结果是在你的部门的结果按位异或的结果。
如果要将结果提升到电源2,则应使用pow()
函数。你可以在这里阅读:http://php.net/manual/en/function.pow.php。
您应该使用pow()来代替。
$C = 3 * pow(($A/$B), 2);
var_dump($C); // float(0.12)
^
不计算功率,但XOR(施放浮动到int)。 来计算功率,使用pow()
或PHP5.6 + **
<?php
$A = 0.04;
$B = 0.20;
$C = 3*($A/$B)**2;
echo $C; //output: 0.12
尝试使用
<?php
$A = 0.04;
$B = 0.20;
$C = 3 * pow(($A/$B),2);
echo $C; //output: 0.36
请不要发布裸露的代码,还包括对代码的作用的解释。 –
尝试铸造结果漂浮所示:$ C =(浮子)(3 *($ A/$ B)^ 2); –
简单:'^'确实**不**计算功率,但是是二进制XOR。 '**'的确如此。另请参阅:** [手册](https://secure.php.net/manual/en/function.pow.php)** –