PHP JSON 格式货币逗号
Posted
技术标签:
【中文标题】PHP JSON 格式货币逗号【英文标题】:PHP JSON Format Currency Comma 【发布时间】:2013-04-27 21:50:34 【问题描述】:我是 php 新手。
我的代码从 Steam 游戏的 json 数据中读取价格值。
http://store.steampowered.com/api/appdetails/?appids=8870
问题是价格节点的值没有用逗号分隔美元和美分格式化。我的代码可以将美元和美分拼凑在一起,但对于这种情况来说,这是正确的方法吗?此外,如果有另一种更简单的方法来编写我的新手代码,请随时告诉我可以改进的地方。谢谢!
<?php
$appid = '8870';
$ht = 'http://store.steampowered.com/api/appdetails/?appids=' . $appid;
$fgc = file_get_contents($ht);
$jd = json_decode($fgc, true);
$gdata = $jd[$appid]['data'];
$gname = $gdata['name'];
$gprice = $gdata['price_overview']['final'];
$gdesc = $gdata['detailed_description'];
$gusd = substr($gprice, 0, -2);
$gcent = substr($gprice, 2);
echo $gname. '<br>';
echo 'Price: $' .$gusd. ',' .$gcent;
?>
如果我可以问另一个问题...价格数据(又名 $gprice)是否可以添加到另一个已获取的价格数据中,以返回总计。
【问题讨论】:
看起来价格只是表示为“美分”值,例如5999 = 59.99 美元。试试number_format($price / 100, 2)
。
$gnprice = number_format($gprice / 100, 2);成功了!
【参考方案1】:
我基本上会做你正在做的事情,只是除以 100 更简单:
将价格变成浮动价格:
$gprice = $gprice / 100;
然后使用money_format
参考:PHP Docs - money_format
您也可以这样做,但实际上没有必要。
$gprice = (int) $gdata['price_overview']['final'];
【讨论】:
【参考方案2】:转换还不错,但你也可以使用这个:
$gusd = $gprice/100;
echo $gname. '<br>';
echo 'Price: $' .str_replace('.', ',', $gusd);
或者用money_format代替replace,但是稍微复杂一点。
另外,要添加另一个,您可以只使用 + 或 += 运算符,如下所示:
$gprice+= $gdata['price_overview']['final'];
【讨论】:
简单的数学是满足我需求的解决方案,而且代码更少。感谢您还向我展示了如何用逗号替换点。以上是关于PHP JSON 格式货币逗号的主要内容,如果未能解决你的问题,请参考以下文章