【问题标题】:Display Number up to two decimal point error显示数字最多两位小数错误
【发布时间】:2012-01-09 21:29:27
【问题描述】:

我想通过 curl 函数显示输出来自 xml 文件的小数点后 2 位的数字。我尝试了 number_format、printf('%.2f',$number) 和 sprintf() 函数。这些都显示结果 0.00。代码如下。

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, `http://orbisadvisors.redinews.com/tools/XM01?                                                                                                      queryid=QJ33020&fields=Last&fields=Change&fields=Chperc&symbol=BSZ`);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  $sp= curl_exec ($ch);
  $sp1=explode(" ",$sp);
  echo "????".$lsp1=$sp1[4];
  printf("%.2f",$lsp1);
  print_r($sp1);
  curl_close ($ch);

如果我使用静态数字代替变量。它给出了正确的结果。

谢谢

【问题讨论】:

  • 我检查了字符串类型的输出类型。如何将它的字符串更改为浮点数?

标签: php xml curl number-formatting


【解决方案1】:

您应该使用像 SimpleXML 这样的库来解析您收到的 XML 数据,如下所示:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://orbisadvisors.redinews.com/tools/XM01?queryid=QJ33020&fields=Last&fields=Change&fields=Chperc&symbol=BSZ');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$sp= curl_exec ($ch);
curl_close ($ch);    

$xml = simplexml_load_string($sp);
$last = sprintf("+%.2f", $xml->Stock->Last); // 1280.70

【讨论】:

  • @RohitSharma:您只需要在格式字符串中添加一个加号 (+)。我更新了我的答案以包括这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-27
  • 1970-01-01
  • 2022-12-05
  • 2015-08-20
  • 1970-01-01
  • 1970-01-01
  • 2015-11-01
相关资源
最近更新 更多