BigDecimal的setScale四大常用方法总结

// 设置小数点后第三位数字一大一小观察效果
BigDecimal num = new BigDecimal("3.3235667");
BigDecimal numOne = new BigDecimal("3.3275667");

1、ROUND_UP:进位制:不管保留数字后面是大是小(0除外)都会进1

// ROUND_UP--进位制:不管保留数字后面是大是小(0除外)都会进1
BigDecimal num1 = num.setScale(2,BigDecimal.ROUND_UP);
System.out.println("SmallROUND_UP:"+num1);
BigDecimal numTwo = numOne.setScale(2,BigDecimal.ROUND_UP);
System.out.println("BigROUND_UP:"+numTwo);
打印结果:SmallROUND_UP:3.33
     BigROUND_UP:3.33

2、ROUND_DOWN:保留设置数字,后面所有直接去除

// ROUND_DOWN--保留设置数字,后面所有直接去除

BigDecimal num2 = num.setScale(2,BigDecimal.ROUND_DOWN);
System.out.println("SmallROUND_DOWN:"+num2);
BigDecimal numThree = numOne.setScale(2,BigDecimal.ROUND_DOWN);
System.out.println("BigROUND_DOWN:"+numThree); 打印结果:SmallROUND_DOWN:3.32
     BigROUND_DOWN:3.32

3、ROUND_HALF_UP:根据保留数字后一位>=5进行四舍五入

// ROUND_HALF_UP--根据保留数字后一位>=5进行四舍五入
BigDecimal num3 = num.setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println("SmallROUND_HALF_UP:"+num3);
BigDecimal numFour = numOne.setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println("BigROUND_HALF_UP:"+numFour);
打印结果:SmallROUND_HALF_UP:3.32
     BigROUND_HALF_UP:3.33

4、ROUND_HALF_DOWN:根据保留数字后一位>5进行四舍五入

BigDecimal num4 = num.setScale(2,BigDecimal.ROUND_HALF_DOWN);
System.out.println("SmallROUND_HALF_DOWN:"+num4);
BigDecimal numFive = numOne.setScale(2,BigDecimal.ROUND_HALF_DOWN);
System.out.println("BigROUND_HALF_DOWN:"+numFive);
打印结果:SmallROUND_HALF_DOWN:3.32
     BigROUND_HALF_DOWN:3.33
希望大家有所收益!!!

BigDecimal的setScale常用方法(ROUND_UP、ROUND_DOWN、ROUND_HALF_UP、ROUND_HALF_DOWN)的更多相关文章

  1. Java中BigDecimal类的常用方法

    1.简介 BigDecimal类位于java.math.BigDecimal包下.使用此类可以完成大的小数操作,而且也可以使用此类进行精确的四舍五入,这一点在开发中经常使用. 对于不需要任何准确计算精 ...

  2. BigDecimal的setScale()方法无效(坑)

    最近在使用BigDecimal进行四舍五入时,发现setScale()方法设置的精度值并没有起作用,一度让我怀疑起是否jdk有bug,代码如下: 错误代码 double d = 7.199999999 ...

  3. 关于BigDecimal.ROUND_HALF_UP与ROUND_HALF_DOWN

    ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1 BigDecimal a ...

  4. java取整和java四舍五入方法 BigDecimal.setScale()方法详解

    import java.math.BigDecimal; public class TestGetInt { public static void main(String[] args) { doub ...

  5. BigDecimal 高精度计算 熟悉扩展,java除法保留小数问题

    java保留两位小数问题: 方式一: 四舍五入  double   f   =   111231.5585;  BigDecimal   b   =   new   BigDecimal(f);  d ...

  6. [十七]基础类型BigDecimal简介

      BigDecimal是不可变的.任意精度的.有符号的.十进制数.   组成部分 BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成 BigDecimal ...

  7. BigDecimal 用法总结

    转载请注明出处: 目录 1.BigDecimal 简介 2.构造BigDecimal的对象 3.常用方法总结 4.divide方法使用 5.setScale 方法使用 6.BigDecimal 数据库 ...

  8. 关于BigDecimal 和 double 类型保存金钱,以及精度问题,银行家舍入法

    1. BigDecimal 类型数据 的创建,构造函数 有 public BigDecimal(BigInteger intVal, long val, int scale, int prec); p ...

  9. 简单BigDecimal运算精度

    项目中遇到了数值运算,如网上所写的,一般有这几个方法: /** * 提供精确的加法运算. * @param v1 被加数 * @param v2 加数 * @return 两个参数的和 */ publ ...

随机推荐

  1. 5、打断点(bpu)

    前言 先给大家讲一则小故事,在我们很小的时候是没有手机的,那时候跟女神聊天都靠小纸条.某屌丝A男对隔壁小王的隔壁女神C倾慕已久,于是天天小纸条骚扰,无奈中间隔着一个小王,这样小王就负责传小纸条了.有一 ...

  2. Codeforces1144A(A题)Diverse Strings

    A. Diverse Strings A string is called diverse if it contains consecutive (adjacent) letters of the L ...

  3. Java并发编程详解读书笔记(一)

    一.线程介绍 讲线程之前得先了解进程(Peocess),现在的操作系统基本都支持多任务的进行,举个场景:有许多的程序员们喜欢边coding边听点轻音乐.这时计算机就是做并行任务,也就是有多个进程在同时 ...

  4. Vue与 Vue组件部分

    1.Vuex作用?哪种功能场景使用它? 答案:vue框架中状态管理. 场景有:单页面应用中,组件之间的状态.音乐播放. 登录状态.加入购物车 2.解释vuex最常用的两种属性 答案:分别State.G ...

  5. C语言基础知识(三)——指针

    指针定义 1.指针的值表示的是它所指向对象的地址,指针+1表示的是下一元素的地址,按**字节**编址,而不是下一字节的地址. 2.依照数据类型而定,short占用两字节.int占用4字节.double ...

  6. Maven、Gradle 配置国内镜像源

    Maven 全局配置 修改 Maven 默认的全局配置文件: 类 Unix 系统: Mac OS / Linux 默认在 ~/.m2/settings.xml Windows 系统:一般在 Maven ...

  7. [推荐]大量 Blazor 学习资源(一)

    前言 / Introduction Blazor 是什么? Blazor 允许您使用 C# 而不是 JavaScript 构建交互式 Web UI. Blazor 应用由使用 C#.HTML 和 CS ...

  8. SSM基础pom和xml的整合配置

    <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit ...

  9. JAVA-Servlet操纵方法

    此篇自用查询 存储数据的区域对象域对象的通用的方法:ServletContext context=getServletContext();获取ServletContext对象setAtrribute( ...

  10. C# HttpClient 使用 Consul 发现服务

    试用了Overt.Core.Grpc, 把 GRPC 的使用改造得像 WCF, 性能测试也非常不错, 非常推荐各位使用. 但已有项目大多是 http 请求, 改造成 GRPC 的话, 工作量比较大, ...