Java BigDecimal Parse strToFloat(String text, int decimals)

Here you can find the source of strToFloat(String text, int decimals)

Description

Parses a string to produce a Float with a number of fraction digits.

License

Apache License

Parameter

Parameter Description
text string to parse
decimals number of fraction digits

Return

Float parsed from string. In case of error, returns null.

Declaration

public static Float strToFloat(String text, int decimals) 

Method Source Code

//package com.java2s;
/**//from  w  w w.  j a v  a 2s . co m
 * Copyright (C) 2012 Red Hat, Inc. and/or its affiliates.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;

import java.util.Locale;

public class Main {
    /**
     * Parses a string to produce a Float with a number of fraction
     * digits.
     *
     * @param text     string to parse
     * @param decimals number of fraction digits
     * @return Float parsed from string. In case of error, returns null.
     */
    public static Float strToFloat(String text, int decimals) {
        try {
            return new Float(getFormat(decimals).parse(text).floatValue());
        } catch (Exception except) {
            except.printStackTrace();
            return null;
        }
    }

    /**
     * Returns the decimal formatter, which has a number of decimals.
     *
     * @param decimals number of decimals
     * @return desired DecimalFormat
     */
    private static DecimalFormat getFormat(int decimals) {
        DecimalFormat df;
        df = (DecimalFormat) DecimalFormat.getInstance(Locale.getDefault());
        DecimalFormatSymbols dsym = df.getDecimalFormatSymbols();
        char decimalSeparator = dsym.getDecimalSeparator();

        StringBuffer pattern = new StringBuffer("0");
        pattern.append(decimalSeparator);
        for (int i = 0; i < decimals; i++)
            pattern.append("0");

        DecimalFormat numberFormat = new DecimalFormat(pattern.toString());
        DecimalFormatSymbols decimalSymb;
        decimalSymb = numberFormat.getDecimalFormatSymbols();

        numberFormat.setGroupingSize(50);
        decimalSymb.setDecimalSeparator(decimalSeparator);
        numberFormat.setDecimalFormatSymbols(decimalSymb);

        return numberFormat;
    }
}

Related

  1. parseTo_BigDecimal(String s)
  2. parseTo_BigDecimal(String s)
  3. parseToBigDecimal(Object value)
  4. string2BigDecimal(String valor)
  5. stringToBigDecimal(String numeroStr)
  6. toDecimalString(String str, int decimal)