code: public static String spellBigNumber(final Number value)
      {
          BigDecimal v = new BigDecimal(value.toString());
  
          if (THOUSAND.compareTo(v.abs()) > 0)
              return value.toString();
  
          boolean isPlural = needPlural(v.unscaledValue().intValue());
  
          for (BigDecimal bigNum : bigDecExponents.keySet())
              if (bigNum.multiply(THOUSAND).compareTo(v.abs()) > 0)
                  return context.get().formatMessage(
                          (isPlural) ? bigDecExponents.get(bigNum) + ".pl" : bigDecExponents.get(bigNum),
                          v.divide(bigNum));
  
          return value.toString();
      }
docs: <p>
  Converts a big number to a friendly text representation. Accepts values
  ranging from thousands to googols. Uses BigDecimal.
  </p>
  
  @param value
  Number to be converted
  @return Friendly text representation of the given value