在php中使用double / float

时间:2013-01-20 19:32:26

标签: php floating-point

  

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

$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(只有一位小数)

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

4 个答案:

答案 0 :(得分: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 = ',' )

答案 1 :(得分:2)

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

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

%.2f确保小数点后总是有两位数。

答案 2 :(得分:2)

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

答案 3 :(得分:1)

尝试floatval

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

可替换地:

$b = (float) $b;

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


如果它只是造型的话:

$b = number_format($b, 2);