Here you can find the source of strToFloat(String text, int decimals)
Parameter | Description |
---|---|
text | string to parse |
decimals | number of fraction digits |
public static Float strToFloat(String text, int decimals)
//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; } }