回声数值正确

时间:2011-12-25 22:52:15

标签: php arrays echo currency numeric

我试图回应一个数组作为PHP的价格,如果价格是例如2.55英镑是2.55英镑,如果它是2.5英镑是2.5英镑,我怎么能得到它添加最后的零点?。

我的Mysql DB字段当前设置为十进制(10,2) 非常感谢 :-) 圣诞快乐!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~#

<?php 
$query = mysql_query("SELECT * FROM hqfjt_chronoforms_data_dashboard WHERE cf_id =    '1'") or die(mysql_error());
$oilprice = mysql_fetch_object($query);
 $oilpricegasoil = $oilprice->oilpricegasoil;
 $oilpricederv = $oilprice->oilpricederv;
$oilpricekero = $oilprice->oilpricekero;
?>



<tr><?php $gasoilprice = $oilpricegasoil + $row->gasoilmargin;
              $dervprice = $oilpricederv + $row->dervmargin;
              $keroprice = $oilpricekero + $row->keromargin;?>

        <td><?php echo $row->leadname; ?></td>
        <td><?php  echo $row->businessname; ?></td>
        <td><?php  echo $row->postcode; ?></td>
        <td><?php  echo $row->gasoiluser; ?></td>
        <td><?php  echo $row->dervuser; ?></td>
        <td><?php  echo $row->kerouser; ?></td>
        <td><?php echo '£'; echo $gasoilprice; ?></td>
        <td><?php echo '£'; echo $dervprice; ?></td>
        <td><?php echo '£'; echo $keroprice; ?></td>

1 个答案:

答案 0 :(得分:1)

简单格式化

尝试the number_format function

<?php
  $test = 2.50;
  echo "£", number_format($test, 2); // 2 decimal places
?>
  

£2.50

要小心,因为这会将.005四舍五入到下一个最高分,这并不总是你想要的:

如果您需要不同的舍入,请尝试使用:

货币格式

您也可以尝试使用the money_format function,但您需要确保正确设置了您的语言区域才能使其正常工作。

money_format('%.2n', $number); // 2 decimal points, with national currency symbol

使用功能

无论哪种方式,我建议您将转换推送到一个函数中,这样您就可以在整个代码中重复使用它,而不必重复编号格式:

function toCurrency($number)
{
  return '£' . number_format($number, 2);
}

// ...

<td><?php echo toCurrency($gasoilprice); ?></td>
<td><?php echo toCurrency($dervprice); ?></td>
<td><?php echo toCurrency($keroprice); ?></td>