最近在开发一个外贸商城时发现有的国家的票子非常毛(不值钱),动辄几十万上百万过亿的,所以ecshop的商品价格格式化函数已不再使用,所以写了这么函数。已实现防科学计数法,当然这个函数也可以适用到其他PHP系统内,标题写ecshop,只不过它很出名罢了。
实现效果:将1234567890转换成1,234,567,890 每3位用逗号隔开的形式。即PHP千分位分割。
附函数:
/*
* 格式化印尼价格(千分位分割)*
* @access public
* @param string $price 商品价格
* @param float $price 商品价格
* 实现原理:
* 1. 将字符串反转过来
* 2. 使用分隔符来分割字符串
* 3. 再次反转,(恢复字符串正常方向)
* 4. 剔除最坐标的分隔符,形成最终千分位分割
*/
function format_idprice($price)
{
$icon_p = 'Rp'; // 标志
$fgf = '.'; // 定义下分隔符
$price = intval($price); // 直接取整
// 不合格的价格归0
if($price == '')
{
$price = 0;
}
$count = ($price);
if ($count > 9)
{
$price = number_format($price, 0, '', '');// 防止科学计数法
}
$price = strrev($price);
$price = chunk_split($price, 3, $fgf);
$price = strrev($price);
$price = ltrim($price, $fgf);
return $icon_p . $price;
}
本文地址:https://www.phpicu.com/article.php?id=59