有一些很大的数,比如 100001864097526 
现在要将其转换为字符串,用
1. strval(100001864097526)  var_dump的结果是:string(15) "100001864098000" ;
2. (string)100001864097526   var_dump的结果还是:string(15) "100001864098000"  ;
3. "". 100001864097526   var_dump的结果还是:string(15) "100001864098000"  ;
转换后的数值有偏差,如何使得这个大数转换后结果是:string(15) "100001864097526" 还望高手赐教。

解决方案 »

  1.   

    因为它超出了Integer 会被解释为 float。同样如果执行的运算结果超出了 integer 范围,也会返回 float。 
      

  2.   

    嗯。可是就算先转化为float或者double型的,结果还是一样的,都试过的。
      

  3.   

    var_dump (str_replace(",","",number_format(100001864097526)));
      

  4.   

    用 number_format() 格式化数字 然后用str_replace() 转换string 类型