使用php检查数字是否以.00结尾

时间:2016-11-16 20:40:32

标签: php

我在zen购物车上工作,我不想要.00来显示价格。 我以为我通过

解决了这个问题
$currencies->format($price)

但是zen cart有一个功能,可以将所需的货币符号添加到数字的前面或后面

$format_string = $this->currencies[$currency_type]['symbol_left'] . number_format(zen_round($number * $rate, $this->currencies[$currency_type]['decimal_places']), $this->currencies[$currency_type]['decimal_places'], $this->currencies[$currency_type]['decimal_point'], $this->currencies[$currency_type]['thousands_point']) . $this->currencies[$currency_type]['symbol_right'];

问题是此函数将.00重新添加到值!

该功能的代码是

$format_string = $this->currencies[$currency_type]['symbol_left'] . number_format(zen_round($number * $rate, $this->currencies[$currency_type]['decimal_places']), $this->currencies[$currency_type]['0'], $this->currencies[$currency_type]['decimal_point'], $this->currencies[$currency_type]['thousands_point']) . $this->currencies[$currency_type]['symbol_right'];

如果我复制该功能,以便我有$ currency-> format2($ price)并将其更改为

    $cur_price=$currencies->format($special_price);
    $price=str_replace(".00", "", (string)number_format ($cur_price, 2, ".", ""));

然后它会添加货币符号,而不会再添加小数位。当然,当你有一个像49.50这样的价格时,它会将其四舍五入到50

我确实尝试了

$price

背后的想法是我可以先应用货币符号然后删除小数点(如果它们是.00),但这会导致价格应该为空白。

我要么找到一种检查是否

的方法
Color.parseColor(mOnboardingAdapter.getItem(position + 1));

以.00结尾,所以我可以有条件地调用$ currency-> format()或$ currency-> format2(),或者我需要修改原始函数,如果它不是十进制位的话。 s .00,但在其他所有时间允许它。

2 个答案:

答案 0 :(得分:4)

$price = substr($price, -3) == ".00" ? substr($price, 0, -3) : $price;

工作?

答案 1 :(得分:2)

你可以使用PHP的explode()函数将价格分成两部分(十进制之前和之后的部分),然后检查它是否是你想要的。

尝试运行下面的代码,然后在将$curr_price更改为以00结尾的内容后再次运行。

<?php 
$curr_price = '45.99';
$price_array = explode('.', $curr_price);
if ($price_array[1] == '00')
{
    $curr_price = $price_array[0];
}
echo 'The price is ' . $curr_price . "<br>";
?>