001
014
015 package com.liferay.portal.kernel.util;
016
017 import java.math.BigDecimal;
018 import java.math.RoundingMode;
019
020
025 public class BigDecimalUtil {
026
027 public static double add(double x, double y) {
028 BigDecimal xBigDecimal = new BigDecimal(String.valueOf(x));
029 BigDecimal yBigDecimal = new BigDecimal(String.valueOf(y));
030
031 BigDecimal resultBigDecimal = xBigDecimal.add(yBigDecimal);
032
033 return resultBigDecimal.doubleValue();
034 }
035
036 public static double divide(
037 double x, double y, int scale, RoundingMode roundingMode) {
038
039 BigDecimal xBigDecimal = new BigDecimal(String.valueOf(x));
040 BigDecimal yBigDecimal = new BigDecimal(String.valueOf(y));
041
042 BigDecimal resultBigDecimal = xBigDecimal.divide(
043 yBigDecimal, scale, roundingMode);
044
045 return resultBigDecimal.doubleValue();
046 }
047
048 public static double divide(
049 int x, int y, int scale, RoundingMode roundingMode) {
050
051 BigDecimal xBigDecimal = new BigDecimal(String.valueOf(x));
052 BigDecimal yBigDecimal = new BigDecimal(String.valueOf(y));
053
054 BigDecimal resultBigDecimal = xBigDecimal.divide(
055 yBigDecimal, scale, roundingMode);
056
057 return resultBigDecimal.doubleValue();
058 }
059
060 public static double multiply(double x, double y) {
061 BigDecimal xBigDecimal = new BigDecimal(String.valueOf(x));
062 BigDecimal yBigDecimal = new BigDecimal(String.valueOf(y));
063
064 BigDecimal resultBigDecimal = xBigDecimal.multiply(yBigDecimal);
065
066 return resultBigDecimal.doubleValue();
067 }
068
069 public static double scale(double x, int scale, RoundingMode roundingMode) {
070 BigDecimal xBigDecimal = new BigDecimal(String.valueOf(x));
071
072 xBigDecimal = xBigDecimal.setScale(scale, roundingMode);
073
074 return xBigDecimal.doubleValue();
075 }
076
077 public static double subtract(double x, double y) {
078 BigDecimal xBigDecimal = new BigDecimal(String.valueOf(x));
079 BigDecimal yBigDecimal = new BigDecimal(String.valueOf(y));
080
081 BigDecimal resultBigDecimal = xBigDecimal.subtract(yBigDecimal);
082
083 return resultBigDecimal.doubleValue();
084 }
085
086 }