3

可能重复:
PHP:将数字显示到小数点后 2 位

我如何转换一个整数,让我们说$i=50一个具有两个十进制值的浮点数:$m=50.00?我已经尝试过(float)$i,但没有任何反应。

编辑:

我需要这样做才能$i == $m返回TRUE

4

3 回答 3

9

round((float)$i, 2) 应该做的伎俩。

round函数是内置的,并将给定的浮点数四舍五入到给定参数中指定的小数位数。

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

于 2012-10-20T23:51:16.850 回答
8

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

将 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!
于 2012-10-21T00:15:04.193 回答
7

对于浮点数,小数位数是一种格式化属性,即数字本身不知道这些事情。float50 存储为精确整数 50。您需要格式化数字sprintf例如使用)以用十进制数字写入。

于 2012-10-20T23:50:38.943 回答