zoukankan      html  css  js  c++  java
  • 将Excel中读取的科学计数法表示的Double数据转换为对应的字符串

      已在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     }
  • 相关阅读:
    李超线段树 [Heoi2013]Segment
    [置顶] 九月半集训总结
    [置顶] 我想学学
    图论+前缀和 任(duty)
    模拟 飞(fly)
    入坑 可持久化线段树——主席树
    一次爆炸的联考
    HASH+平衡树 [JSOI2008]火星人prefix
    乱搞+STL平衡树 序列
    数学+图论 建造游乐场
  • 原文地址:https://www.cnblogs.com/yw0219/p/6613948.html
Copyright © 2011-2022 走看看