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 格式货币逗号的主要内容,如果未能解决你的问题,请参考以下文章

使用美元符号和逗号格式化货币输入字段

php如何将逗号分隔的多个json格式的字符串作为一个值插入到mysql表中? [复制]

如何在其中存储带有逗号的货币值?

数据格式化数字货币加逗号隔开

格式化货币 - Swift

PHP数字格式不带逗号