1

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

$b = $del['Antal'];
$y = $info['Pris'];
$z = $y * $b;

$y 来自一个 mysql 数据库,它的类型是“double(10,2)”,所以当我尝试 echo $y; 时它可以工作。它以两位小数响应。

但现在我想将它与 $b 相乘。

例如 10.20 * 2 = 20.40

但现在它就像:10.20 * 2 = 20.4(只有一位小数)

我想要两位小数,怎么办?我用 (double) 函数尝试了一些东西,但并没有真正奏效。该怎么办?

4

4 回答 4

3

您可以使用number_format

$b = $del['Antal'];
$y = $info['Pris'];
$z = number_format($y * $b ,2);

number_format功能:

string number_format ( float $number [, int $decimals = 0 ] )

如果您不想要默认格式:

string number_format ( float $number , int $decimals = 0 , string $dec_point = '.' , string $thousands_sep = ',' )
于 2013-01-20T19:35:35.277 回答
2

您描述的数据类型是点数,而不是浮点数(float)。PHP 没有这样的数据类型,但是它可以format为您浮动。看起来这就是您正在寻找的,格式化输出。

于 2013-01-20T19:36:00.270 回答
2

您可以通过使用 sprintf 并将其存储为字符串来确保将其存储在小数点后两位:

$z = sprintf('%.2f', $y * $b);

%.2f确保小数点后始终有两位数。

于 2013-01-20T19:35:38.010 回答
1

尝试floatval

$z = $y * floatval($b);

或者:

$b = (float) $b;

但是,如果将其乘以 10.20,它应该会自动转换为浮点数。阅读 PHP 关于type juggling的文档。


如果它只是一个造型的东西:

$b = number_format($b, 2);
于 2013-01-20T19:34:47.247 回答