Java Number Round roundTo(double val, double prec)

Here you can find the source of roundTo(double val, double prec)

Description

Rounds a double precision value to the given precision.

License

Open Source License

Parameter

Parameter Description
val a parameter
prec a parameter

Return

rounded value

Declaration

public static final double roundTo(double val, double prec) 

Method Source Code

//package com.java2s;
/*//from  www.j a v  a  2  s  .co m
 * Copyright (c) 2006-2011 Karsten Schmidt
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 * 
 * http://creativecommons.org/licenses/LGPL/2.1/
 * 
 * This library 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.  See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

public class Main {
    /**
     * Rounds a double precision value to the given precision.
     * 
     * @param val
     * @param prec
     * @return rounded value
     */
    public static final double roundTo(double val, double prec) {
        return floor(val / prec + 0.5) * prec;
    }

    /**
     * Rounds a single precision value to the given precision.
     * 
     * @param val
     * @param prec
     * @return rounded value
     */
    public static final float roundTo(float val, float prec) {
        return floor(val / prec + 0.5f) * prec;
    }

    /**
     * Rounds an integer value to the given precision.
     * 
     * @param val
     * @param prec
     * @return rounded value
     */
    public static final int roundTo(int val, int prec) {
        return floor((float) val / prec + 0.5f) * prec;
    }

    public static final int floor(double x) {
        int y = (int) x;
        if (x < 0 && x != y) {
            y--;
        }
        return y;
    }

    /**
     * This method is a *lot* faster than using (int)Math.floor(x).
     * 
     * @param x
     *            value to be floored
     * @return floored value as integer
     * @since 0012
     */
    public static final int floor(float x) {
        int y = (int) x;
        if (x < 0 && x != y) {
            y--;
        }
        return y;
    }
}

Related

  1. roundTimeStamp(long tstamp)
  2. roundTimeValue(final float defaultUnitValue, final boolean is24HourFormatting)
  3. roundTo(double aValue, int aDigits)
  4. roundTo(double d, int n)
  5. roundTo(double num, int dp)
  6. roundTo(final double VALUE, final double TARGET)
  7. roundTo(float number, int base)
  8. roundTo(float number, int numPlaces)
  9. roundTo(float val, int numPlaces)