php 数字过长时,会自动转换为科学计数法: "1.4271549730846E+15",求复原的方法,跪谢!!!
//php版本5.3.3
这是数据库的字段吗?还是你计算出来的数字?
读取的excel文件里面的值
原值:1427154973084650
php读取后变成:1.4271549730846E+15
@✎﹏ℳ๓₯㎕ღ: number_format()之后,我发现少了50,我再找找方法
@wakasann: 对我也试了,后两位都变成0了
@✎﹏ℳ๓₯㎕ღ: http://www.netingcn.com/phpexcel-big-number-display.html,试试这个是否有帮助
@wakasann: 这种方法也试过了,也是不行
@✎﹏ℳ๓₯㎕ღ: 直接给取到的值转为string,echo出来是不会为科学计算法的
@wakasann: 我从excel中取出来就是这个:1.4271549730846E+15
@✎﹏ℳ๓₯㎕ღ: Excel中,你是否可以设置这一列为"Text",文本之后,再次导入,也可能是在Excel中,就是科学计数法了。你导入是用PHPExcel?
@wakasann: 纯读取然后写入数据库,就是读取的时候变成了科学计数法
@wakasann: 好的 我试一下,我没用TP
@✎﹏ℳ๓₯㎕ღ: 在写入数据库之前,你可以
<?php echo "<pre>"; var_dump($array); //Excel中读取之后存入的数组 echo "</pre>";
看1.4271549730846E+15这个字段是否是float
@wakasann:
@✎﹏ℳ๓₯㎕ღ:应该是Excel中已经是科学计数法了...
@✎﹏ℳ๓₯㎕ღ:
@wakasann:
@✎﹏ℳ๓₯㎕ღ: 把单元格格式设置为文本是一个解决方法
@✎﹏ℳ๓₯㎕ღ:phpexcel reading an excel file decimal numbers are read incorrectly
,参考这个,嘻嘻,我的OK了
@wakasann: 这个还是用number_format方法啊 ,还是少了最后两位