code: protected NumberFormat guessNumberFormat(int style) {
          NumberFormat result;
          ULocale nfLocale = getAvailableLocale(TYPE_NUMBERFORMAT);
          if (nfLocale == null) {
              nfLocale = ULocale.ROOT;
          }
          switch (style) {
          case NF_NUMBER:
              result = NumberFormat.getInstance(nfLocale);
              break;
          case NF_SCIENTIFIC:
              result = NumberFormat.getScientificInstance(nfLocale);
              break;
          case NF_INTEGER:
              result = NumberFormat.getIntegerInstance(nfLocale);
              break;
          case NF_PERCENT:
              result = NumberFormat.getPercentInstance(nfLocale);
              break;
          case NF_CURRENCY:
              result = NumberFormat.getCurrencyInstance(nfLocale);
              result.setCurrency(getCurrency());
              break;
          default:
              throw new IllegalArgumentException("Unknown number format style");
          }
          return result;
      }
docs: This function can be overridden by subclasses to use different heuristics.
  <b>It MUST return a 'safe' value,
  one whose modification will not affect this object.</b>
  
  @param style
  @hide draft / provisional / internal are hidden on Android