Java Float to String floatToString(float f, int precision)

Here you can find the source of floatToString(float f, int precision)

Description

float To String

License

Open Source License

Declaration

public static String floatToString(float f, int precision) 

Method Source Code

//package com.java2s;
/*//from  w w w  .  j a  va 2s.  co m
 * Distributed as part of mchange-commons-java 0.2.9
 *
 * Copyright (C) 2015 Machinery For Change, Inc.
 *
 * Author: Steve Waldman <swaldman@mchange.com>
 *
 * This library is free software; you can redistribute it and/or modify
 * it under the terms of EITHER:
 *
 *     1) The GNU Lesser General Public License (LGPL), version 2.1, as 
 *        published by the Free Software Foundation
 *
 * OR
 *
 *     2) The Eclipse Public License (EPL), version 1.0
 *
 * You may choose which license to accept if you wish to redistribute
 * or modify this work. You may offer derivatives of this work
 * under the license you have chosen, or you may provide the same
 * choice of license which you have been offered here.
 *
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 * You should have received copies of both LGPL v2.1 and EPL v1.0
 * along with this software; see the files LICENSE-EPL and LICENSE-LGPL.
 * If not, the text of these licenses are currently available at
 *
 * LGPL v2.1: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
 *  EPL v1.0: http://www.eclipse.org/org/documents/epl-v10.php 
 * 
 */

public class Main {
    public static String floatToString(float f, int precision) {
        boolean negative = f < 0;
        f = (negative ? -f : f);

        long whole_rep = Math.round(f * Math.pow(10, -precision));

        String wholeRepStr = String.valueOf(whole_rep);
        if (whole_rep == 0)
            return wholeRepStr;

        int whole_len = wholeRepStr.length();
        int pre_len = whole_len + precision;

        StringBuffer sb = new StringBuffer(32);
        if (negative)
            sb.append('-');

        if (pre_len <= 0) {
            sb.append("0.");
            for (int i = 0; i < -pre_len; ++i)
                sb.append('0');
            sb.append(wholeRepStr);
        } else {
            //       System.out.println("wholeRepStr: " + wholeRepStr);
            //       System.out.println("pre_len: " + pre_len);
            sb.append(wholeRepStr.substring(0, Math.min(pre_len, whole_len)));
            if (pre_len < whole_len) {
                sb.append('.');
                sb.append(wholeRepStr.substring(pre_len));
            } else if (pre_len > whole_len) {
                for (int i = 0, len = pre_len - whole_len; i < len; ++i)
                    sb.append('0');
            }
        }
        return sb.toString();
    }
}

Related

  1. floatToFormattedString(float f)
  2. floatToString(final float value, final boolean stripDotZero)
  3. floatToString(float boost)
  4. floatToString(float d)
  5. floatToString(float f, boolean asAPI)
  6. floatToString(float f, int precision)
  7. floatToString(float fValue)
  8. floatToString(Float num)
  9. floatToString(float val, int width)