php 解决返回数据 数字 变成科学计数法后转换问题

链接 https://blog.csdn.net/liuxin_0725/article/details/81514961

  1. 问题 id int型 数字过长,json_decode的时候已经转成科学计数了 通过格式化后 数字已经变了
  2.  
    $obj='{"order_id":20180110000000001}';
  3.  
    $obj=json_decode($obj,TRUE);
  4.  
    foreach ($obj as $key=>$val){
  5.  
    $obj[$key]=number_format($val.'',0,'','');
  6.  
     
  7.  
    }
  8.  
    print_r($obj); 结果 Array ( [order_id] => 20180110000000000 )
  1.  
    问题 id 字符串型 数字过长,json_decode的时候已经转成科学计数了 通过格式化后 数字已经变了
  2.  
    $obj='{"order_id":"20180110000000001"}';
  3.  
    $obj=json_decode($obj,TRUE);
  4.  
    foreach ($obj as $key=>$val){
  5.  
    $obj[$key]=number_format($val.'',0,'','');
  6.  
    }
  7.  
    print_r($obj); 结果 Array ( [order_id] => 20180110000000000 )

解决方案 id 传过来必须是 字符串型 通过几次函数操作即可

    1.  
      $obj='{"order_id":"20180110000000001"}';
    2.  
      $obj=json_decode($obj,TRUE);
    3.  
      foreach ($obj as $key=>$val){
    4.  
      if ((is_numeric($val))&&(strpos($val,'.')))
    5.  
      {
    6.  
      $obj[$key] = rtrim(rtrim(number_format($val,12,',',''),'0'),',');
    7.  
      }
    8.  
      }
    9.  
      print_r($obj); Array ( [order_id] => 20180110000000001 )
原文地址:https://www.cnblogs.com/songyanan/p/9647217.html