当我想将integer
值转换为float
(带点数的数字)时,我遇到了麻烦。
$a = 7200;
$b = $a/3600;
echo $b; // 2
$b = floatval($b);
echo $b; // 2
但它应该回显2.0
或2.00
我也尝试过settype,但没有成功。 我只找到“浮动到int”的帮助/解决方案/问题。
答案 0 :(得分:29)
<强> 更新 强>
使用强>
echo sprintf("%.2f", $b); // returns 2.00
<击> 使用击>
<击>echo number_format($b, 2);
例如:
echo number_format(1234, 2); // returns 1,234.00
击> <击> 撞击>
修改强>
@DavidBaucum是的,number_format()返回字符串。
使用
echo sprintf("%.2f", $b);
对于您的问题,请使用
为什么number_format不起作用可以通过这个来证明。回声 number_format(1234,0)+ 1.0结果是2
echo sprintf("%.2f",(1234 + 1.0 ) ); // returns 1235.00
答案 1 :(得分:8)
您可以使用number_format()
功能来完成此任务。此函数还允许您定义小数点后显示的零的数量 - 您只需要使用第二个参数:
$a = 7200;
$b = $a/3600;
$b = floatval($b);
echo number_format($b, 2, '.', '');
或者,如果你想这样做一行:
echo number_format( (float) $b, 2, '.', '');
输出:
2.00
答案 2 :(得分:8)
类似的东西:
<?php
$a = 7200;
$b = $a/3600;
$b = number_format($b,2);
echo $b; // 2.00
?>
-
number_format(number,decimals,decimalpoint,separator)
答案 3 :(得分:2)
我自己找到了解决方案:
$b = number_format((float)$b, 1, '.', '');
echo $b; // 2.0
诀窍