Java bigdemical精确计算
来源:互联网 发布:大数据在运营商的运用 编辑:程序博客网 时间:2024/05/19 04:29
很多同学在实际开始中都遇到过这样的问题,就是在对商品价格进行计算的时候都出现了不精确的问题,下面我们就来看看;
/** * a 乘以b * @param chengshu * @param beiChengShu * @return */ public static String multiply(String chengshu, String beiChengShu) { BigDecimal bigDecimal = new BigDecimal(chengshu); BigDecimal bigDecimal2 = new BigDecimal(beiChengShu); BigDecimal multiply = bigDecimal.multiply(bigDecimal2); return multiply.toString(); } /** * a 除以b * @param chushu * @param beiChuShu * @return */ public static String divide(String chushu, String beiChuShu) { BigDecimal bigDecimal = new BigDecimal(chushu); BigDecimal bigDecimal2 = new BigDecimal(beiChuShu); BigDecimal multiply = bigDecimal.divide(bigDecimal2); return multiply.toString(); } /** * a 加b * @param jiashu * @param beiJiaShu * @return */ public static String add(String jiashu, String beiJiaShu) { BigDecimal bigDecimal = new BigDecimal(jiashu); BigDecimal bigDecimal2 = new BigDecimal(beiJiaShu); BigDecimal multiply = bigDecimal.add(bigDecimal2); return multiply.toString(); } /** * a 减b * @param jianshu * @param beiJianShu * @return */ public static String subtract(String jianshu, String beiJianShu) { BigDecimal bigDecimal = new BigDecimal(jianshu); BigDecimal bigDecimal2 = new BigDecimal(beiJianShu); BigDecimal multiply = bigDecimal.subtract(bigDecimal2); return multiply.toString(); } /** * 保留2位小数,第三位四舍五入 * @param * @return */ public static String hasTwo(Object target) { DecimalFormat format = new DecimalFormat("#.00"); return format.format(target); }
另外一种除法比较灵活:
bigDecimal.divide(new BigDecimal("1000"),3,BigDecimal.ROUND_HALF_DOWN)BigDecimal bigDecimal = new BigDecimal("1.2022"); System.err.println("ROUND_DOWN="+bigDecimal.setScale(1, BigDecimal.ROUND_DOWN));//只取小数点后一位,不管下一位 System.err.println("ROUND_UP="+bigDecimal.setScale(1, BigDecimal.ROUND_UP));//只要有后面有数字就向上进以为,0除过 System.err.println("ROUND_HALF_UP="+bigDecimal.setScale(1, BigDecimal.ROUND_HALF_UP));//下一位大于等于0.5就会向上进一位,否则只取小数点后一位 System.err.println("ROUND_HALF_DOWN="+bigDecimal.setScale(1, BigDecimal.ROUND_HALF_DOWN));//去小数点后1为,除非下一位大于0.5才会向上进一位
0 0
- Java bigdemical精确计算
- java bigdemical比较大小
- java数值精确计算
- java的精确计算
- java精确计算
- java精确计算
- Java精确计算小数
- Java精确计算
- java小数精确计算
- java/android 精确计算
- Java中的精确计算
- ACM Java BigDemical setScale()保留小数位
- Java 小数精确计算问题
- java中的精确商务计算
- java 浮点数精确计算
- java计算时间差,精确到纳秒
- java中的数字精确计算
- Java精确计算:BigDecimal类
- 栗子的Linux学习之路,开始了
- P2472 [SCOI2007]蜥蜴
- JDBC
- windows安装多个jdk版本,配置环境变量
- JsonObject put、element、accumulate的区别。
- Java bigdemical精确计算
- from表单优先触发submit事件
- JDBC
- duilib中将xml封装为控件简单示例(简单自定义控件,封装几个基本控件合为1个自定义控件)
- 将Centos的yum源更换为国内的阿里云源
- 十.JPQL基础
- 盒子的嵌套
- iOS封装HTTPS双向和单向验证
- 怎么让手机网站自适应设备屏幕宽度?