Java BigDecimal Multiply multiplyMoeda(BigDecimal val1, BigDecimal val2)

Here you can find the source of multiplyMoeda(BigDecimal val1, BigDecimal val2)

Description

multiply Moeda

License

Open Source License

Declaration

public static BigDecimal multiplyMoeda(BigDecimal val1, BigDecimal val2) 

Method Source Code

//package com.java2s;
/**/*from   ww  w .  j  a  v a  2 s.c om*/
 * Ecf4J - framework Java para intera??o com equipamentos de Automa??o Comercial 
 * 
 * Direitos Autorais Reservados (c) 2009-2010 ecf4j.org
 *
 * Autores: Agner Ger?nimo Munhoz, 
 *          Pablo Henrique Fassina, 
 *          Rafael Pasqualini de Freitas,
 *          Wellington Carvalho
 *
 * Voc? pode obter a ?ltima vers?o desse arquivo na pagina do Ecf4J.org
 * dispon?vel em: <http://www.ecf4j.org> 21/09/2009.
 *
 * Este arquivo ? parte da framework Ecf4J
 *
 * Ecf4J ? um framework livre; voc? pode redistribui-lo e/ou 
 * modifica-lo dentro dos termos da Licen?a P?blica Geral Menor GNU como 
 * publicada pela Funda??o do Software Livre (FSF); na vers?o 2.1 da 
 * Licen?a.
 *
 * Este framework ? distribuido na esperan?a que possa ser  util, 
 * mas SEM NENHUMA GARANTIA; sem uma garantia implicita de ADEQUA??O a qualquer
 * MERCADO ou APLICA??O EM PARTICULAR. Veja a
 * Licen?a P?blica Geral GNU para maiores detalhes.
 *
 * Voc? deve ter recebido uma c?pia da Licen?a P?blica Geral Menor GNU
 * junto com este framework, se n?o, escreva para a Funda??o do Software
 * Livre(FSF) Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */

import java.math.BigDecimal;

public class Main {
    public static int decMoeda = 2;
    public static int roundingMode = BigDecimal.ROUND_DOWN;

    public static BigDecimal multiplyMoeda(BigDecimal val1, BigDecimal val2) {
        if (val1.scale() < val2.scale()) {
            BigDecimal aux = (val1 != null ? val1 : newMoeda());
            aux = aux.setScale(decMoeda, roundingMode);
            return aux.multiply((val2 != null ? val2 : newMoeda())).setScale(decMoeda, roundingMode);
            //return aux.multiply(val2, new MathContext(decMoeda, roundingMode)).setScale(decMoeda, roundingMode);         
        } else {
            BigDecimal aux = (val2 != null ? val2 : newMoeda());
            aux = aux.setScale(decMoeda, roundingMode);
            return aux.multiply((val1 != null ? val1 : newMoeda())).setScale(decMoeda, roundingMode);
            //return aux.multiply(val2, new MathContext(decMoeda, roundingMode)).setScale(decMoeda, roundingMode);         
        }
    }

    /**
     * newMoeda - Cria um novo BigDecimal em escala de moeda com valor 0
     * @return BigDecimal
     */
    public static BigDecimal newMoeda() {
        return new BigDecimal("0").setScale(decMoeda, roundingMode);
    }

    /**
     * newMoeda - Cria um novo BigDecimal em escala de moeda com valor val
     * @param val
     * @return BigDecimal
     */
    public static BigDecimal newMoeda(int val) {
        return BigDecimal.valueOf(val).setScale(decMoeda, roundingMode);
    }

    /**
     * newMoeda - Cria um novo BigDecimal em escala de moeda com valor val
     * @param val
     * @return BigDecimal
     */
    public static BigDecimal newMoeda(long val) {
        return BigDecimal.valueOf(val).setScale(decMoeda, roundingMode);
    }

    /**
     * newMoeda - Cria um novo BigDecimal em escala de moeda com valor val
     * @param val
     * @return BigDecimal
     */
    public static BigDecimal newMoeda(double val) {
        return BigDecimal.valueOf(val).setScale(decMoeda, roundingMode);
    }

    /**
     * newMoeda - Cria um novo BigDecimal em escala de moeda com valor val
     * @param val
     * @return BigDecimal
     */
    public static BigDecimal newMoeda(String val) {
        if (!val.isEmpty()) {
            return newMoeda(StringToDouble(val));
        } else {
            return newMoeda();
        }
    }

    public static double StringToDouble(String str) {
        str = str.replaceAll(",", ".");
        if (!str.isEmpty()) {
            return Double.parseDouble(str);
        } else {
            return 0;
        }
    }
}

Related

  1. multiply(BigDecimal... operands)
  2. multiply(final BigDecimal val1, final BigDecimal val2)
  3. multiply(final BigDecimal value, final BigDecimal multiplicand)
  4. multiplyBy(BigDecimal multiplicand, BigDecimal multiplier)
  5. multiplyFactor(BigDecimal val, float factor)
  6. multiplyQtde(BigDecimal val1, BigDecimal val2)