code: public static String normalizeExponents(String input) {
          Matcher m = eExp.matcher(input);
          if (m.find()) {
  
              Float number = Float.parseFloat(m.group(1));
              int exp = Integer.parseInt(m.group(3));
              boolean negative = m.group(2) != null && m.group(2).equals("-");
              if (negative)
                  exp *= -1;
  
              return FORMATTER.format(number * Math.pow(10, exp));
          }
  
          // TODO refactor into 1
          m = xExp.matcher(input);
          if (m.find()) {
  
              Float number = Float.parseFloat(m.group(1));
              int exp = Integer.parseInt(m.group(3));
              boolean negative = m.group(2) != null && m.group(2).equals("-");
              if (negative)
                  exp *= -1;
  
              String s = FORMATTER.format(number * Math.pow(10, exp));
              return s;
          }
  
          return input;
      }
docs: normalizes numbers with exponents, like 5E-5 or 5x10(-5)