A double value can be represented like d = x * 10exp and this method returns the value of exp for a double d. - Java java.lang

Java examples for java.lang:Math Algorithm

Description

A double value can be represented like d = x * 10exp and this method returns the value of exp for a double d.

Demo Code

/*/*w  w  w .  j a  v  a2s.c  o m*/
    JOpenChart Java Charting Library and Toolkit
    Copyright (C) 2001  Sebastian M?ller
    http://jopenchart.sourceforge.net

    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.

    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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

    ChartUtilities.java
    Created on 21. September 2001, 17:42
 */
//package com.java2s;

public class Main {
    public static void main(String[] argv) throws Exception {
        double d = 2.45678;
        System.out.println(exp(d));
    }

    /** A double value can be represented like 
     * <code>d = x * 10<sup>exp</sup></code> and this method returns
     * the value of exp for a double d.
     * @param d the double value
     * @return the exponent of 10
     */
    public static int exp(double d) {
        int exp = 0;
        boolean positive = (d <= -1 || d >= 1);

        while ((d <= -10) || (d >= 10) || ((d > -1) && (d < 1))) {
            if (positive) {
                d /= 10;
                exp++;
            } else {
                d *= 10;
                exp--;
            }
        }

        return exp;
    }
}

Related Tutorials