2017-01-24 55 views
0

做什么应该是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)也是行不通的。

我在做什么错?

+0

尝试铸造结果漂浮所示:$ C =(浮子)(3 *($ A/$ B)^ 2); –

+4

简单:'^'确实**不**计算功率,但是是二进制XOR。 '**'的确如此。另请参阅:** [手册](https://secure.php.net/manual/en/function.pow.php)** –

回答

1
3*($A/$B)^2 

手段3 * (A/B) XOR 2^意味着xor),所以bascially您所看到的结果是在你的部门的结果按位异或的结果。
如果要将结果提升到电源2,则应使用pow()函数。你可以在这里阅读:http://php.net/manual/en/function.pow.php

0

您应该使用pow()来代替。

$C = 3 * pow(($A/$B), 2); 

var_dump($C); // float(0.12) 
1

^不计算功率,但XOR(施放浮动到int)。 来计算功率,使用pow()或PHP5.6 + **

<?php 
$A = 0.04; 
$B = 0.20; 

$C = 3*($A/$B)**2; 

echo $C; //output: 0.12 
0

尝试使用

<?php 

$A = 0.04; 
$B = 0.20; 

$C = 3 * pow(($A/$B),2); 

echo $C; //output: 0.36 
+1

请不要发布裸露的代码,还包括对代码的作用的解释。 –