问问题
1289 次
2 回答
3
<?php
$num = 126.54;
echo $num === round($num, 0) ? round($num, 0) : $num;
?>
这可以用来吐出你的号码。至于货币头寸,您可以根据货币设置条件。
完整答案:这处理所有货币类型并将它们放置在正确的位置。享受:
<?php
$symbols = array('€', '$');
$price = '$126.56';
foreach($symbols as $needle)
{
if($pos = strpos($price, $needle) && $pos !== false)
break;
}
$num = floatval(str_replace($symbols, '', $price));
$num = $num === round($num, 0) ? round($num, 0) : $num;
echo $pos ? $num.substr($price, -1) : substr($price, 0, 1).$num;
?>
KISS 方法:有时,我们被复杂的答案所吸引,而忽略了简单的答案。我知道这有点晚了,但它可能会吹走很多不必要的代码。仅当您保证定价中有两位小数时才使用此选项:
<?php
$rounded = str_replace('.00', '', $price);
?>
这将有效地消除任何担心货币放置的需要。但请记住:这仅适用于您的情况,前提是您保证定价格式精确到小数点后两位。
于 2012-05-02T20:51:55.153 回答
0
这应该可以帮助您:
更新
误读了您的原始帖子,并没有意识到您想保留货币符号。这应该可以很好地和简单地完成技巧,它是什么货币符号或它在哪里都没有关系。
// Won't change this
$number = '$200.00';
echo preg_replace('/([.0-9]+)(€)/e','round(\'$1\',0)."$2"',$number);
// Will change this
$number = '200.00€';
echo preg_replace('/([.0-9]+)(€)/e','round(\'$1\',0)."$2"',$number);
于 2012-05-02T21:20:09.407 回答