将int转换为float,PHP中的两个十进制值

时间:2012-10-20 23:48:03

标签: php casting integer decimal-point

  

可能重复:
  PHP: show a number to 2 decimal places

如何转换整数,假设$i=50为具有两个十进制值的浮点数:$m=50.00?我试过(float)$i但没有任何反应。

修改

我需要制作$i == $m,以便返回TRUE;

3 个答案:

答案 0 :(得分:8)

round((float)$ i,2)应该这样做。

圆函数内置并将给定的float舍入到给定参数中指定的小数位数。

啊,是的,number_format($ var,2)也很好!

答案 1 :(得分:7)

对于浮点数,小数位数是格式化属性,即数字本身不知道那些东西。 float 50存储为精确整数50.您需要格式化数字(例如,使用sprintf)以十进制数字写入。

答案 2 :(得分:7)

如果您只是使用常规相等运算符(==)而不是类型安全相等运算符(===),那么您应该没有任何问题。

将double与具有相同值的int进行比较:

$i = 20;
$m = 20.00;

gettype($i); // integer
gettype($m); // double

$i == $m; // true;
$i === $m; // false, $m is a double and $i is an integer.

但是,如果我们想解决这个问题,我们只需要这样做:

$i = (double)$i;
gettype($i); // double
$i === $m; // true!