Skip to content

Examples

Marco Terzer edited this page Sep 1, 2015 · 27 revisions
Example 1: Interest Calculation
public class Interest {
	public static void main(String[] args) {
		Decimal2f principal = Decimal2f.valueOf(9500);
		Decimal3f rate = Decimal3f.valueOf(0.067);
		Decimal2f time = Decimal2f.valueOf(1).divide(4);
		Decimal2f interest = principal.multiplyBy(rate.multiplyExact(time));
		System.out.println("First quarter interest:  $" + interest);
	}
}

will output

First quarter interest: $159.13
Example 2: Circumference of a Circle
public class Circle {
	public static void main(String[] args) {
		Decimal18f PI = Decimal18f.valueOf(Math.PI);
		Decimal2f radius = Decimal2f.valueOf(5);
		Decimal2f circ = radius.multiplyBy(PI.multiply(2));
		System.out.println("Circumference with 5m radius is ~" + circ + "m");
		System.out.println("Circumference with 5m radius is ~" + (2*Math.PI * 5) + "m");

		Decimal2f down = radius.multiplyBy(PI.multiply(2), RoundingMode.DOWN);
		System.out.println("Circumference with 5m radius is larger than " + down + "m");
	}
}

will output

Circumference with 5m radius is ~31.42m
Circumference with 5m radius is ~31.41592653589793m
Circumference with 5m radius is larger than 31.41m
Example 3: Mean and Standard Deviation with MutableDecimal
public class MeanStdDev {
	/* Random generator*/
	private static final Random RND = new Random();
	/* Sample count*/
	private static final int N = 10000;
	/* Expected sample mean*/
	private static final Decimal10f EXP_MEAN = Decimal10f.valueOf(0);
	
	public static void main(String[] args) {
		MutableDecimal10f mean = new MutableDecimal10f();
		MutableDecimal10f var = new MutableDecimal10f();
		for (int i = 0; i < N; i++) {
			double value = RND.nextGaussian();
			mean.add(value);
			var.addSquared(EXP_MEAN.subtract(value));
		}
		System.out.println("Mean: " + mean.divide(N));
		System.out.println("Variance: " + var.divide(N));
		System.out.println("StdDev: " + var.sqrt());
	}
}

will output something like

Mean: 0.0111499553
Variance: 1.0109666338
StdDev: 1.0054683654
Example 4: Addition
public class Add {
	public static void main(String[] args) {
		Decimal2f a = Decimal2f.valueOf(4);
		Decimal2f b = Decimal2f.valueOf(1.5);
		Decimal3f c = Decimal3f.valueOf(0.125);
		Decimal3f d = Decimal3f.valueOf(0.5);

		System.out.println("ADD: values with same scale");
		Decimal2f sumAB = a.add(b);
		Decimal3f sumCD = c.add(d);
		System.out.println("a+b = " + sumAB);
		System.out.println("c+d = " + sumCD);
		
		System.out.println("ADD: values with different scales");
		Decimal2f sumAC = a.add(c, RoundingMode.HALF_UP);
		Decimal3f sumCA = c.add(a, RoundingMode.UNNECESSARY);
		System.out.println("a+c = " + sumAC);
		System.out.println("c+a = " + sumCA);
	}
}
Example 5: Multiplication
public class Multiply {
	public static void main(String[] args) {
		Decimal2f a = Decimal2f.valueOf(4);
		Decimal2f b = Decimal2f.valueOf(1.5);
		Decimal3f c = Decimal3f.valueOf(0.125);
		Decimal3f d = Decimal3f.valueOf(0.5);
		
		System.out.println("MULTIPLY: values with same scale");
		Decimal2f productAB = a.multiply(b);
		Decimal3f productCD = c.multiply(d);
		Decimal3f downCD = c.multiply(d, RoundingMode.DOWN);
		System.out.println("a*b = " + productAB);
		System.out.println("c*d = " + productCD);
		System.out.println("c*d = " + downCD);

		System.out.println("MULTIPLY: values with different scales");
		Decimal2f productAC = a.multiplyBy(c);
		Decimal2f productBC = b.multiplyBy(c);
		Decimal2f productBD = b.multiplyBy(d);
		Decimal3f productCA = c.multiplyBy(a);
		System.out.println("a*c = " + productAC);
		System.out.println("b*c = " + productBC);
		System.out.println("b*d = " + productBD);
		System.out.println("c*a = " + productCA);

		System.out.println("MULTIPLY: exact multiplication");
		Decimal<?> exactCD = c.multiplyExact(d);
		Decimal6f typedCD = c.multiplyExact().by(d);
		Decimal5f typedAD = a.multiplyExact().by(d);
		System.out.println("c*d = " + exactCD);
		System.out.println("c*d = " + typedCD);
		System.out.println("a*d = " + typedAD);
	}
}
Clone this wiki locally