Java BigDecimal Calculate calculateDeviation(BigDecimal v1, BigDecimal v2)

Here you can find the source of calculateDeviation(BigDecimal v1, BigDecimal v2)

Description

calculate Deviation

License

Open Source License

Declaration

public static double calculateDeviation(BigDecimal v1, BigDecimal v2) 

Method Source Code


//package com.java2s;
/*/* ww w.  j a  v a 2 s . co  m*/
 * Copyright (c) 2010-2012 Grid Dynamics Consulting Services, Inc, All Rights Reserved
 * http://www.griddynamics.com
 *
 * 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 any later version.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

import java.math.BigDecimal;

public class Main {
    public static double calculateDeviation(BigDecimal v1, BigDecimal v2) {

        if (v1 == null || v2 == null) {
            return 0;
        }

        double dv1 = v1.doubleValue();
        double dv2 = v2.doubleValue();

        return calculateDeviation(dv1, dv2);
    }

    public static double calculateDeviation(double dv1, double dv2) {
        double ratio;
        if (Double.compare(dv2, 0) == 0) {
            if (!(Double.compare(dv1, 0) == 0)) {
                ratio = Double.POSITIVE_INFINITY;
            } else {
                ratio = 1.0;
            }
        } else {
            ratio = Math.abs(dv1 / dv2);
        }

        if (Double.compare(ratio, 1.0) == 0) {
            return 0;
        }

        return ratio - 1;
    }
}

Related

  1. calcDistance(final BigDecimal x1, final BigDecimal y1, final BigDecimal x2, final BigDecimal y2)
  2. calcPercentage(int priceInCents, BigDecimal vat)
  3. calculate(BigDecimal number1, String operator, BigDecimal number2, int decimalPlaces)
  4. calculateArithmeticMean(BigDecimal[] values)
  5. calculateDayRate(BigDecimal rate, BigDecimal money)
  6. calculateDivide(BigDecimal numerator, BigDecimal denominator)
  7. calculateGainPercentage(BigDecimal gain, BigDecimal totalGains)
  8. calculateLHS(BigDecimal a, Vector Bj, Vector Bj1)
  9. calculateMonthCapital(BigDecimal eachIssueMoney, BigDecimal eachMonthInterest)