Mega Code Archive

 
Categories / Android / Date Type
 

Given a number, round up to the nearest power of ten times 1, 2, or 5 The argument must be strictly positive

/**  * Copyright (C) 2009, 2010 SC 4ViewSoft SRL  *    * 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.  */ //package org.achartengine.util; import java.text.NumberFormat; import java.util.List; /**  * Utility class for math operations.  */ class MathHelper {   /** A value that is used a null value. */   public static final double NULL_VALUE = Double.MAX_VALUE;   /**    * A number formatter to be used to make sure we have a maximum number of    * fraction digits in the labels.    */   private static final NumberFormat FORMAT = NumberFormat.getNumberInstance();   private MathHelper() {     // empty constructor   }    /**      * Given a number, round up to the nearest power of ten times 1, 2, or 5. The      * argument must be strictly positive.      */     private static double roundUp(final double val) {       int exponent = (int) Math.floor(Math.log10(val));       double rval = val * Math.pow(10, -exponent);       if (rval > 5.0) {         rval = 10.0;       } else if (rval > 2.0) {         rval = 5.0;       } else if (rval > 1.0) {         rval = 2.0;       }       rval *= Math.pow(10, exponent);       return rval;     } }