PHP

时间:2017-05-13 18:43:36

标签: php wordpress number-formatting

我试图在我没有创建的Wordpress主题中修改一些PHP,开发人员不是很有帮助。

我正在一个网站上为客户展示几个房产列表及其相关价格。当我在编辑器中输入数字时,它会删除所有小数。因此,如果我输入16.50,它会立即变为1650.我希望它能够显示2位小数。我已经完成了一些研究,但我在PHP方面知识不足以使它有意义。开发人员指示我为$ price_meta调整以下代码,但是只需将2位小数加到数字上即可显示1650.00。似乎小数点在进入时立即被剥离。我还需要做些什么来让它正确显示吗?

if(!function_exists('ct_listing_price')) {
function ct_listing_price() {
    global $post;
    global $ct_options;

    $ct_currency_placement = $ct_options['ct_currency_placement'];

    $price_prefix = get_post_meta(get_the_ID(), '_ct_price_prefix', true);
    $price_postfix = get_post_meta(get_the_ID(), '_ct_price_postfix', true);

    $price_meta = get_post_meta(get_the_ID(), '_ct_price', true);
    $price_meta= preg_replace('/[\$,]/', '', $price_meta);

    if($ct_currency_placement == 'after') {
        if(!empty($price_prefix)) {
            echo "<span class='listing-price-prefix'>";
                echo esc_html($price_prefix) . ' ';
            echo '</span>';
        }
        if(!empty($price_meta)) {
            echo "<span class='listing-price'>";
                echo number_format($price_meta, 2);
                ct_currency();
            echo '</span>';
        }
        if(!empty($price_postfix)) {
            echo "<span class='listing-price-postfix'>";
                echo  ' ' . esc_html($price_postfix) . ' ';
            echo '</span>';
        }
    } else {
        if(!empty($price_prefix)) {
            echo esc_html($price_prefix) . ' ';
        }
        if(!empty($price_meta)) {
            echo "<span class='listing-price'>";
                ct_currency();
                echo number_format($price_meta, 2);
            echo '</span>';
        }
        if(!empty($price_postfix)) {
            echo  ' ' . esc_html($price_postfix);
        }
    }
}

我对PHP的知识非常有限,所以如果你有一个想法如何帮助,请尽可能简单明了地解释。

2 个答案:

答案 0 :(得分:0)

尝试number_format($ price_meta,2,'。','');这应输出16.50

答案 1 :(得分:0)

根据国际格式,可能有两种选择。

如果您使用,作为小数分隔符,则函数将为:

number_format($price_meta, 2, ',', '');

如果您需要将千位分隔符设为.,只需将其添加到上一个函数中,如下所示:

number_format($price_meta, 2, ',', '.');

现在,另一方面,如果您需要使用.作为小数分隔符,则必须切换:

number_format($price_meta, 2, '.', '');

使用,

的千位分隔符

number_format($price_meta, 2, '.', ',');