package com.wyw;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
public class ObjectDemo {
public static void main(String[] args) throws Exception {
//加法 //57.51262
System.out.println(new BigDecimal("1.25822").add(new BigDecimal("56.2544")));
//减法计算 //-4.007553
System.out.println(new BigDecimal("1.257447").subtract(new BigDecimal("5.265")));
//乘法计算 //3.2109175
System.out.println(new BigDecimal("2.5585").multiply(new BigDecimal("1.255")));
/**
* 除法计算 //2.039
* 除法计算需要特别注意后面的两个参数,如果除尽的时候应该没问题,如果除不尽就会报错,
* 所以这里需要舍子保留的小数位【3】跟计算结果取值办法【ROUND_HALF_UP】
*/
System.out.println(new BigDecimal("2.5585").divide(new BigDecimal("1.255"),3,BigDecimal.ROUND_HALF_UP));
//这里介绍四个常用的计算结果处理办法,当然处理办法有很多,这四种比较常用
/*
* 1.ROUND_DOWN
* 这里表示在保留了三位小数后的结果全部去掉,很明显这种不太合理
* 运行结果:2.558
*/
System.out.println(new BigDecimal("2.5588").setScale(3,BigDecimal.ROUND_DOWN));
/*
* 2.ROUND_UP
* 这里表示在保留了三位小数后的结果全部加1然后进到前一位,很明显这种不太合理
* 运行结果:2.559
*/
System.out.println(new BigDecimal("2.5581").setScale(3,BigDecimal.ROUND_UP));
/**
* 3.ROUND_HALF_UP
* 这里是正常的四舍五入办法,最为合理
* 运行结果:2.558
*/
System.out.println(new BigDecimal("2.5581").setScale(3,BigDecimal.ROUND_HALF_UP));
/*
* 4.ROUND_HALF_DOWN
* 这里是把数据保留了小数位以后当后面的一位是5则舍去,如果是6则入上去,相当于五舍六入
* 运行结果:2.556
*/
System.out.println(new BigDecimal("2.5555").setScale(3,BigDecimal.ROUND_HALF_DOWN));
/**
*两个BigDecimal比较大小的方法 compareTo()
*如果前者比后者大返回 1,如果两个一样大返回 0,如果前者比后者小返回 -1
*此处运行结果为 -1
*/
System.out.println(new BigDecimal("0.25").compareTo(new BigDecimal("0.26")));
}
}