Here you can find the source of getProzentWert(BigDecimal zahl, BigDecimal prozentsatz, int nachkommastellen)
Parameter | Description |
---|---|
zahl | BigDecimal |
prozentsatz | Double |
nachkommastellen | int |
public static BigDecimal getProzentWert(BigDecimal zahl, BigDecimal prozentsatz, int nachkommastellen)
//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; // } } }