我在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,但在其他所有时间允许它。
答案 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>";
?>