首页 > 其他分享 >BigDecimal相除并保留小数后两位

BigDecimal相除并保留小数后两位

时间:2022-08-26 15:02:18浏览次数:40  
标签:2.35 BigDecimal UP setScale 相除 ROUND 小数

/**
* 使用BigDecimal精确计算 相除
* @return String
*/
public static String divideForBigDecimal(Integer a,Integer b){
BigDecimal bigDecimal = new BigDecimal(a);
BigDecimal bigDecimal1 = new BigDecimal(b);
BigDecimal result = bigDecimal.divide(bigDecimal1).setScale(2, BigDecimal.ROUND_HALF_UP);
return result.toString();
}

setScale参数可选

BigDecimal.setScale()方法用于格式化小数点
setScale(1)表示保留一位小数,默认用四舍五入方式
setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3
setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4
setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4
setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍
setScaler(1,BigDecimal.ROUND_CEILING)接近正无穷大的舍入
setScaler(1,BigDecimal.ROUND_FLOOR)接近负无穷大的舍入,数字>0和ROUND_UP作用一样,数字<0和ROUND_DOWN作用一样
setScaler(1,BigDecimal.ROUND_HALF_EVEN)向最接近的数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。

 

标签:2.35,BigDecimal,UP,setScale,相除,ROUND,小数
From: https://www.cnblogs.com/wanbiao/p/16619812.html

相关文章

  • 2022-08-26 js 乘法计算之小数失精
    例:0.55*100我们以为的运算结果:55实际上js的结果为:55.00000000000001这就是js的失精,简单来说就是js对算法的设计不够严谨导致的,具体原因可看这篇文章☞http://t.csdn.cn/......
  • JAVA BigDecimal
    加减乘除BigDecimalqtySettleTotal=qtySettleTotal.setScale(2,BigDecimal.ROUND_HALF_UP);BigDecimalqtyYF=this.txtqtyYF.getBigDecimalValue().setScale(2,B......
  • BigDecimal详解和精度问题
    JavaGuide :「Java学习+面试指南」一份涵盖大部分Java程序员所需要掌握的核心知识。BigDecimal是大厂Java面试常问的一个知识点。《阿里巴巴Java开发手册》中......
  • Java8 对list集合中的bigdecimal进行分组求和,均值,最大值,最小值
     文章目录需求中对数值进行求和的非常多,但java8对bigdecimal求和没有封装新建接口ToBigDecimalFunction新建工具类CollectorsUtil实体类Person 需求中对......
  • 常用类 .BigDecimal
    BigDecimal是精确存储,而double是近似值存储位置:java.math包中作用:精确计算浮点数创建方式:BigDecimalbd=newBigDecimal("1.0")方法:BigDecimaladd(BigDecimalbd)加......
  • java输出小数点后n位
    用DecimalFormat类的实例化对象的format的方法,在DecimalFormat构造的时候将所需要的格式传进去;具体代码为: 也可以for循环定义format的数量 但是如果输出0.22222......
  • 求区间第k小数 数据范围小的时候(100) 考虑dp
    华为云挑战赛1001求前n个区间分成m段的第(len-0.05*len)个小数#include<bits/stdc++.h>usingnamespacestd;voidread(int&x){ charc=0;x=0; while(!isdigit(c))......
  • Python小整数池-小数据池-驻留机制-is和==区别
    Python小整数池-小数据池-驻留机制-is和==区别1.is和==的区别相同点:都用来比较两个对象是否一样不同点:is用来比较是否是同一个对象,即对象的物理地址是否相同(id(......
  • 字典序第k小数字
        https://leetcode.cn/problems/k-th-smallest-in-lexicographical-order/solution/pythonjavajavascriptgo-di-gui-by-himymbe-5mq5/ funcfindKthNumber......
  • Day04-BigDecimal等类
    BigDecimal类一.使用场景float和double类型的值存储方式为近似存储,在某些精度要求高的行业需要精确存储数据,则需要使用BigDecimal类二.BigDecimal类介绍位置:java.ma......