我想通过删除小数来显示价格,如果它们是双00或显示为任何其他值的上标。这种方法有效,直到货币兑换或税号添加到该号码。上标仍然有效,但是整数都以双00作为上标返回。
24.00美元应为24美元
<$> 24.99美元应为24美元。 99 USD这是我正在使用的代码:
if(round($value, 0) == $value)
$string .= number_format(($value)) . ' ';
else
$string .= preg_replace("/\.(\d*)/", "<sup>.$1</sup>", number_format($value,
(int)$decimal_place, $decimal_point, $thousand_point)) . ' ';
在计算货币或税项后,我删除了多少00?
答案 0 :(得分:2)
你应该替换它:
if(round($value, 0) == $value)
由此:
if(abs(round($value, 0) - $value) < 0.005)
因为税收和货币计算引入了一些浮点不精确。
答案 1 :(得分:0)
你走了:
setlocale(LC_MONETARY, 'en_US');
$money = money_format('%n', $value);
$exploded = explode('.', $money);
$currency = '$';
if($exploded[1] == '00')
{
$currency .= substr($money, 0, strlen($money) -3);
}else
{
$currency .= $exploded[0] . '<sup>' . $exploded[1] . '</sup>';
}
$currency .= ' USD';
echo $currency;