我从eBay API字符串中获取数据时遇到了一个简单的问题。我想将数字格式化为2位数8.0> 8.00
这很好用
echo $price; // output: 8.0
但是...
echo number_format($price, 2); // output: (nothing)
var_dump告诉我为什么......
var_dump($price);
// output: object(SimpleXMLElement)#19 (2) { ["@attributes"]=> array(1) { ["currencyId"]=> string(3) "USD" } [0]=> string(3) "8.0" }
如何将8.0变为8.00(我知道我可以使用REGEX,但感觉不是正确的方式)
虽然我们在这里,但我如何才能获得“美元”和“美元”。 ?
PS:使用的API调用是findCompletedItems - 对我来说奇怪的是,XML响应根本没有可见的USD。
答案 0 :(得分:1)
var_dump为您提供了一个SimpleXMLElement类型的对象,该对象具有__toString方法,该方法返回直接在元素中的文本内容,因此echo $price;
将导致8.0
USD
是attributes的一部分,它返回SimpleXMLElement类型的对象。
您可以将价格和货币转换为(string)
$priceAsString = (string)$price;
$currencyIdAsString = (string)$price->attributes()->currencyId;
答案 1 :(得分:0)
您没有传入字符串,而是传递了类SimpleXMLElement
的对象。您可以做的最简单的事情是将其转换为字符串,然后使用(string)$price
将其传递给number_format