我有以下写的功能
function range_gen($num1,$num2){
$exp = explode('.',$num1);
$accuracy = strlen($exp[1]);
$dp = array(
0=>1,
1=>0.1,
2=>0.01,
3=>0.001,
4=>0.0001);
foreach ($dp as $key=>$acc)
{
if ($accuracy ==$key){
$step = $acc;
}
}
foreach (range($num1, $num2 ,$step) as $number) {
$ans.= "\"".$number."\",";
}
echo trim($ans,",");
}
如果我给它两个值,例如20.49和20.51那么结果是20.49,20.5,20.51
如何让20.5变为20.50?
由于 罗布
答案 0 :(得分:3)
你没有“得到”20.5因为php会自动截断尾随小数0。但是,当您使用echo
打印号码时,您可以对其进行格式化:
echo number_format($number, 2);
在循环中,可以这样做:
你可以这样:
foreach (range($num1, $num2 ,$step) as $number) {
$ans.= "\"".number_format($number,2)."\",";
}
答案 1 :(得分:3)
这是PHP number_format()
DOCs函数的域。
echo number_format($number, 2);
使用循环代码的示例:
foreach (range($num1, $num2 ,$step) as $number) {
$ans .= '"' . number_format($number,2) . '",';
}
另一种选择是使用sprintf()
DOCs:
echo sprintf("%.2f", $number);
使用循环代码的示例:
foreach (range($num1, $num2 ,$step) as $number) {
$ans .= '"' . sprintf("%.2f", $number) . '",';
}
foreach (range($num1, $num2 ,$step) as $number) {
$ans[] = number_format($number,2);
}
$ans = '"' . implode('", "', $ans) . '"';
答案 2 :(得分:0)
您应该查看sprintf()
函数。
例:
$formatted = sprintf('%.2f', 2.5);
答案 3 :(得分:0)
试试这个:
string number_format ( float $number , int $decimals = 0 )
答案 4 :(得分:0)
像这样使用sprintf function:
$x=20.5;
$str = sprintf("%.2f", $x);
var_dump($str);
<强>输出:强>
string(5)“20.50”