terça-feira, 27 de julho de 2010

[java] convertStringDecimalToBigDecimal

   /**
    * Converte uma String no formato decimal (valor de moeda, p. ex.) para um BigDecimal.
    * Se a String for vazia ou se ocorrer uma exceção, retorna null
    *
    * @param valor
    * @param locale - pegue o Locale desejado pelo método "getLocale..." do JavaUtils
    * @return String
    */
   public static BigDecimal convertStringDecimalToBigDecimal(String valor, Locale locale,
            int minimoCasasDecimais, int maximoCasasDecimais) {
      BigDecimal retorno = null;
      if (JavaUtils.isStringNaoVazia(valor)) {
         try {
            NumberFormat formato = DecimalFormat.getNumberInstance(locale);
            formato.setMinimumFractionDigits(minimoCasasDecimais);
            formato.setMaximumFractionDigits(maximoCasasDecimais);
            retorno = new BigDecimal(formato.parse(valor).doubleValue());
         } catch (Throwable e) {
            log.warn("JavaUtils.convertStringDecimalToBigDecimal() - Erro de " +
                     "conversao. Vai retornar null. Error: " + e);
         }
      }
      return retorno;
   }

Nenhum comentário: