首页 新闻 赞助 找找看

php 数字过长时自动转换为 "1.4271549730846E+15",求复原方法

0
悬赏园豆:10 [已解决问题] 解决于 2016-01-04 14:14

php 数字过长时,会自动转换为科学计数法: "1.4271549730846E+15",求复原的方法,跪谢!!!

//php版本5.3.3

php
✎﹏ℳ๓₯㎕ღ的主页 ✎﹏ℳ๓₯㎕ღ | 小虾三级 | 园豆:1499
提问于:2015-12-23 17:27
< >
分享
最佳答案
0

这是数据库的字段吗?还是你计算出来的数字?

收获园豆:10
五毛钱的饼 | 小虾三级 |园豆:517 | 2015-12-23 17:36

 读取的excel文件里面的值

 原值:1427154973084650

 php读取后变成:1.4271549730846E+15

✎﹏ℳ๓₯㎕ღ | 园豆:1499 (小虾三级) | 2015-12-23 17:38

@✎﹏ℳ๓₯㎕ღ: number_format()之后,我发现少了50,我再找找方法

五毛钱的饼 | 园豆:517 (小虾三级) | 2015-12-23 17:43

@wakasann: 对我也试了,后两位都变成0了

✎﹏ℳ๓₯㎕ღ | 园豆:1499 (小虾三级) | 2015-12-23 17:50

@✎﹏ℳ๓₯㎕ღ: http://www.netingcn.com/phpexcel-big-number-display.html,试试这个是否有帮助

五毛钱的饼 | 园豆:517 (小虾三级) | 2015-12-23 17:53

@wakasann: 这种方法也试过了,也是不行

✎﹏ℳ๓₯㎕ღ | 园豆:1499 (小虾三级) | 2015-12-23 17:54

@✎﹏ℳ๓₯㎕ღ: 直接给取到的值转为string,echo出来是不会为科学计算法的

五毛钱的饼 | 园豆:517 (小虾三级) | 2015-12-23 17:55

@wakasann: 我从excel中取出来就是这个:1.4271549730846E+15

✎﹏ℳ๓₯㎕ღ | 园豆:1499 (小虾三级) | 2015-12-23 17:56

@✎﹏ℳ๓₯㎕ღ: Excel中,你是否可以设置这一列为"Text",文本之后,再次导入,也可能是在Excel中,就是科学计数法了。你导入是用PHPExcel?

五毛钱的饼 | 园豆:517 (小虾三级) | 2015-12-23 17:58

@wakasann: 纯读取然后写入数据库,就是读取的时候变成了科学计数法

✎﹏ℳ๓₯㎕ღ | 园豆:1499 (小虾三级) | 2015-12-23 18:04

@wakasann: 好的 我试一下,我没用TP

✎﹏ℳ๓₯㎕ღ | 园豆:1499 (小虾三级) | 2015-12-23 18:09

@✎﹏ℳ๓₯㎕ღ: 在写入数据库之前,你可以

<?php
echo "<pre>";
var_dump($array); //Excel中读取之后存入的数组
echo "</pre>";

看1.4271549730846E+15这个字段是否是float

五毛钱的饼 | 园豆:517 (小虾三级) | 2015-12-23 18:09

@wakasann: 

✎﹏ℳ๓₯㎕ღ | 园豆:1499 (小虾三级) | 2015-12-23 18:13

@✎﹏ℳ๓₯㎕ღ:应该是Excel中已经是科学计数法了...

五毛钱的饼 | 园豆:517 (小虾三级) | 2015-12-23 18:16

@✎﹏ℳ๓₯㎕ღ: 

五毛钱的饼 | 园豆:517 (小虾三级) | 2015-12-23 18:17

@wakasann: 

✎﹏ℳ๓₯㎕ღ | 园豆:1499 (小虾三级) | 2015-12-23 18:18

@✎﹏ℳ๓₯㎕ღ: 把单元格格式设置为文本是一个解决方法

五毛钱的饼 | 园豆:517 (小虾三级) | 2015-12-23 19:17

@✎﹏ℳ๓₯㎕ღ:phpexcel reading an excel file decimal numbers are read incorrectly

,参考这个,嘻嘻,我的OK了

五毛钱的饼 | 园豆:517 (小虾三级) | 2015-12-23 19:48

@wakasann: 这个还是用number_format方法啊 ,还是少了最后两位

✎﹏ℳ๓₯㎕ღ | 园豆:1499 (小虾三级) | 2015-12-25 11:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册