Java BigDecimal getProzentWert(BigDecimal zahl, BigDecimal prozentsatz, int nachkommastellen)

Here you can find the source of getProzentWert(BigDecimal zahl, BigDecimal prozentsatz, int nachkommastellen)

Description

Den Wert eines Prozentsatzes einer Zahl berechnen, kaufmaennisch auf n Nachkommastellen gerundet.

License

Open Source License

Parameter

Parameter Description
zahl BigDecimal
prozentsatz Double
nachkommastellen int

Return

BigDecimal

Declaration

public static BigDecimal getProzentWert(BigDecimal zahl,
        BigDecimal prozentsatz, int nachkommastellen) 

Method Source Code

//package com.java2s;
/*******************************************************************************
 * HELIUM V, Open Source ERP software for sustained success
 * at small and medium-sized enterprises.
 * Copyright (C) 2004 - 2014 HELIUM V IT-Solutions GmbH
 * /*from   www .  j a v  a 2s  .c o  m*/
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published 
 * by the Free Software Foundation, either version 3 of theLicense, or 
 * (at your option) any later version.
 * 
 * According to sec. 7 of the GNU Affero General Public License, version 3, 
 * the terms of the AGPL are supplemented with the following terms:
 * 
 * "HELIUM V" and "HELIUM 5" are registered trademarks of 
 * HELIUM V IT-Solutions GmbH. The licensing of the program under the 
 * AGPL does not imply a trademark license. Therefore any rights, title and
 * interest in our trademarks remain entirely with us. If you want to propagate
 * modified versions of the Program under the name "HELIUM V" or "HELIUM 5",
 * you may only do so if you have a written permission by HELIUM V IT-Solutions 
 * GmbH (to acquire a permission please contact HELIUM V IT-Solutions
 * at trademark@heliumv.com).
 * 
 * This program 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 Affero General Public License for more details.
 * 
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * 
 * Contact: developers@heliumv.com
 ******************************************************************************/

import java.math.BigDecimal;

public class Main {
    /**
     * Den Wert eines Prozentsatzes einer Zahl berechnen, kaufmaennisch auf n
     * Nachkommastellen gerundet.
     * 
     * @param zahl
     *            BigDecimal
     * @param prozentsatz
     *            Double
     * @param nachkommastellen
     *            int
     * @return BigDecimal
     */
    public static BigDecimal getProzentWert(BigDecimal zahl,
            BigDecimal prozentsatz, int nachkommastellen) {
        // Prozentsatz gleich durch 100 dividieren.
        BigDecimal prozentsatz2 = prozentsatz.movePointLeft(2);
        BigDecimal result = zahl.multiply(prozentsatz2);
        return rundeKaufmaennisch(result, nachkommastellen);
    }

    /**
     * kaufmaennisch runden.
     * 
     * @param bigDecimal
     *            BigDecimal
     * @param stellen
     *            int
     * @return BigDecimal
     */
    public static final BigDecimal rundeKaufmaennisch(
            BigDecimal bigDecimal, int stellen) {
        // return rundeKaufmaennisch(bigDecimal, new Integer(stellen));
        return bigDecimal == null ? null : bigDecimal.setScale(stellen,
                BigDecimal.ROUND_HALF_EVEN);
    }

    /**
     * kaufmaennisch runden.
     * 
     * @param bigDecimal
     *            BigDecimal
     * @param stellen
     *            int
     * @return BigDecimal
     */
    public static final BigDecimal rundeKaufmaennisch(
            BigDecimal bigDecimal, Integer stellen) {
        return rundeKaufmaennisch(bigDecimal, stellen.intValue());

        /*
         * Wir haben meist den rundeKaufmaennisch(.., int). Der wird auf einen
         * new Integer(int) aufgeblasen, um dann hier wieder auf einen int
         * zurueckgewandelt zu werden? Das ist doch Bloedsinn.
         */
        // if (bigDecimal != null) {
        // return bigDecimal.setScale(stellen.intValue(),
        // BigDecimal.ROUND_HALF_EVEN);
        // } else {
        // return null;
        // }
    }
}

Related

  1. getParamBigDecimal(Map paramMap, String paramName)
  2. getPercent(BigDecimal numerator, BigDecimal denominator)
  3. getPercentage(BigDecimal amount, BigDecimal percent)
  4. getPercentageValue(BigDecimal price, double amount)
  5. getProfit(BigDecimal ask, BigDecimal bid, BigDecimal fee)
  6. getRandomBigDecimal(BigDecimal a, BigDecimal b)
  7. getRandomBigDecimal(int maxValue, int scale)
  8. getRandomPriceChangeFactor(BigDecimal currentPrice)
  9. getRecordSize(List> columnBaseData)