已在SegmentFault提问,目前没有答案,自行实现如下:

  1. private static String getRealNumOfScientificNotation(String doubleStr) {
  2. int indexOfE = doubleStr.indexOf('E');
  3. int indexOfPoint = doubleStr.indexOf('.');
  4. // 整数部分
  5. BigInteger zs = new BigInteger(doubleStr.substring(0, indexOfPoint));
  6. // 小数部分
  7. BigInteger xs = new BigInteger(doubleStr.substring(indexOfPoint
  8. + BigInteger.ONE.intValue(), indexOfE));
  9. // 指数
  10. int pow = Integer.valueOf(doubleStr.substring(indexOfE
  11. + BigInteger.ONE.intValue()));
  12. StringBuffer buffer = new StringBuffer();
  13. // e.g. 1.23E-5
  14. if (pow < 0) {
  15. for (int i = 0; i < -pow; i++) {
  16. buffer.append(0);
  17. }
  18. buffer.insert(BigInteger.ONE.intValue(), ".");
  19. buffer.append(zs.toString()).append(xs.toString());
  20. doubleStr = buffer.toString();
  21. } else {
  22. int xsLen = xs.toByteArray().length;
  23. int needFill0 = pow - xsLen;
  24. if (needFill0 < 0) {
  25. // e.g. 1.234E2
  26. buffer.append(xs);
  27. buffer.insert(pow, ".");
  28. buffer.insert(0, zs);
  29. doubleStr = buffer.toString();
  30. } else {
  31. // e.g. 1.234E6 or 1.234E3
  32. for (int i = 0; i < needFill0; i++) {
  33. buffer.append(0);
  34. }
  35. buffer.insert(0, xs);
  36. buffer.insert(0, zs);
  37. doubleStr = buffer.toString();
  38. }
  39. }
  40. return doubleStr;
  41. }

将Excel中读取的科学计数法表示的Double数据转换为对应的字符串的更多相关文章

  1. Java中的浮点数-科学计数法-加减乘除

    上次,提到"元转分"这个浮点数问题,boss倾向于手动把1.23元这种格式,转换成123分.    但实际上,浮点数很容易遇到精度问题.    比如,System.out.prin ...

  2. 解决HTML导出Excel表数字变成科学计数法

    - js 中导出excel 较长数字串会变成科学计数法 在做项目中,碰到如题的问题.比如要将居民的信息导出到excel中,居民的身份证号码因为长度过长(大于10位),excel会自动的将过长的数字串转 ...

  3. Java中怎么把科学计数法显示出全部数字

    如果想去除科学计数法显示可以用如下方法处理: /** * 把科学计数法显示出全部数字 * @param d */ public static String object2Str(Object d) { ...

  4. 数值或者电话号码被EXCEL转成了科学计数法,用XSSFCell 如何读取

    public static Map<String, Integer> readXls() throws IOException { //用来获取每一个小号重复多次,被多少账号用了.来平均 ...

  5. python:科学计数法转化为浮点型数据

    def as_num(x): y='{:.5f}'.format(x) # 5f表示保留5位小数点的float型 return(y) 实验一下 as_num(1.2e-4) In [3]:as_num ...

  6. 解决从Excel导入数据库,导入到DataTable时数据类型发生变化的问题(如数字类型变成科学计数法,百分数变成小数)

    做项目的时候,C#读取Excel数据到DataTable或者DataSet,设断点查看DataTable,发现Excel的显示为较长位数数字的字段如0.000012在DataTable中显示为科学计数 ...

  7. 用POI导出excel时,较长的数字不想被自动变为科学计数法的解决方式(转)

    做过很多次导出excel了.都碰到一个问题,内容里如果包含一个比较长的数字,比如订单号“2546541656596”,excel会自动变成科学计数法... 弄过好几次都没有解决,最近又要导出excel ...

  8. Gridview数据导出excel时身份证号码为科学计数法的解决方法

    if (e.Row.RowType == DataControlRowType.DataRow) { string id = this.GridView1.DataKeys[e.Row.RowInde ...

  9. Laravel 使用 maatwebsite/excel 时长数字出现科学计数法的解决办法

    在使用 maatwebsite/excel 包导出Excel的时候,有的单元格里会存放手机号等一大串的数字,这一串数字会被Excel软件处理为科学计数法,在后续处理数据的时候会产生不小的麻烦,一个个去 ...

随机推荐

  1. 漂亮的Qt控件 QSS代码例子

    Qt Style Sheets Examples We will now see a few examples to get started with using Qt Style Sheets. S ...

  2. activiti自己定义流程之Spring整合activiti-modeler实例(一):环境搭建

    项目中须要整合activiti-modeler自己定义流程,找了非常多资料后,最终成功的跳转到activiti-modeler流程设计界面.下面是记录: 一.整合基础:eclipse4.4.1.tom ...

  3. linux 建立反向shell

    首先是netcat的版本选择BSD版的不支技-c -e参数,而GNU版的有-e参数,这里我用的是GNU版: sh-4.1# nc -V netcat (The GNU Netcat) Copyrigh ...

  4. 窗体彻底关闭事件FormClosed

    //Application.Exit()是退出整个应用程序 Application.ExitThread();//强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题 System.Dia ...

  5. 每日英语:Robots To Revolutionize China

    A new worker's revolution is rising in China and it doesn't involve humans. With soaring wages and a ...

  6. 回调形成树形结构tree

    //Tree.vue <template> <li> <span @click="toggle"> <i v-if="isFol ...

  7. System.Data.SqlClient.SqlError:无法打开备份设备'D:\..\abc.bak'

    在SQL Server中备份数据库时遇到备份对于服务器“服务器名”失败. (Microsoft.SqlServer.Smo)其他信息:System.Data.SqlClient.SqlError:无法 ...

  8. 使用Windows防火墙禁止Ping入

    前言: 不知道安全比赛是咋样的,但是肯定是日来日去的,那么故事来了,大牛们肯定会狂ip,刚开始肯定是一个段的狂扫.咋让他不扫到你呢?就是这篇文章了.其实这一切都是ICMP在作祟 windows2003 ...

  9. 【Unity笔记】获得鼠标点击屏幕的位置,并转成世界坐标

    Vector3 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition);

  10. ExtJS获取Grid的行数

    1.     grid.getSelectionModel().getCount() ;  // 获得当前选中的行数  2.     grid.getStore().getTotalCount();  ...