package com.googlecode.aviator.example; import java.math.BigDecimal; import java.math.BigInteger; import java.math.MathContext; import com.googlecode.aviator.AviatorEvaluator; public class BigNumberExample { public static void main(String[] args) { Object rt = AviatorEvaluator.exec("9223372036854775807100.356M * 2"); System.out.println(rt + " " + rt.getClass()); rt = AviatorEvaluator.exec("92233720368547758074+1000"); System.out.println(rt + " " + rt.getClass()); BigInteger a = new BigInteger(String.valueOf(Long.MAX_VALUE) + String.valueOf(Long.MAX_VALUE)); BigDecimal b = new BigDecimal("3.2"); BigDecimal c = new BigDecimal("9999.99999"); rt = AviatorEvaluator.exec("a+10000000000000000000", a); System.out.println(rt + " " + rt.getClass()); rt = AviatorEvaluator.exec("b+c*2", b, c); System.out.println(rt + " " + rt.getClass()); rt = AviatorEvaluator.exec("a*b/c", a, b, c); System.out.println(rt + " " + rt.getClass()); // set math context AviatorEvaluator.setMathContext(MathContext.DECIMAL64); rt = AviatorEvaluator.exec("a*b/c", a, b, c); System.out.println(rt + " " + rt.getClass()); } }