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. 关于Nginx参数路径问题的问题

    本文转载自:https://pureage.info/2013/10/31/130.html 由于工作需要,开始分析nginx的proxy模块,在分析之前,当然要先会用了.于是开始熟悉该模块的一些指令 ...

  2. 小程序externalClasses介绍

    小程序externalClasses 1.介绍:我们在封装组件的时候,有时候需要对外暴露出class,可以由调用者来决定组件中一部分的样式,此时就需要使用它了 // components/dong/i ...

  3. 自建nodejs服务器(一:有个服务器)

    之前在阿里云备案过,也买过域名和虚拟主机(6元一年),可惜虚拟主机虽然说可选linux或windows系统,但linux系统只支持几个php程序,一番折腾,云栖社区的大伙们都说要弄node得买个ECS ...

  4. JS的函数和对象四

    复习 数组 toString/join/concat/slice/splice/reverse/sort/ push/pop/unshift/shift 字符串 new String(2)  /  S ...

  5. 8.3 Go channel

    8.3 Go channel 在Go语言中,关键字go的引入使得Go语言并发编程更加简单而优雅,但是并发编程的复杂性,以及时刻关注并发编程容易出现的问题需要时刻警惕. 并发编程的难度在于协调,然而协调 ...

  6. 3.7 Go指针

    1. Go指针 每个变量在运行时都拥有一个地址,这个地址代表变量在内存中的位置. Go 语言中使用&作符放在变量前面对变量进行“取地址”操作. 1.指针默认值nil 2.通过&(取地值 ...

  7. 四、$jQuery

    1.你觉得jQuery或zepto源码有哪些写的好的地方 jquery源码封装在一个匿名函数的自执行环境中,有助于防止变量的全局污染,然后通过传入window对象参数,可以使window对象作为局部变 ...

  8. .net core HttpClient 使用之消息管道解析(二)

    一.前言 前面分享了 .net core HttpClient 使用之掉坑解析(一),今天来分享自定义消息处理HttpMessageHandler和PrimaryHttpMessageHandler ...

  9. Django + Celery 实现动态配置定时任务

    哈喽,今天给大家分享一篇Django+Celery实现动态配置定时任务,因为最近也是无意间看到一位大佬关于这块的文章,然后自己觉得不错,也想学习写一下,然后最终实现功能是在前端页面统一管理计划任务,大 ...

  10. LTE常用标识和参数

    1 基本标识 1 .1 IMSI 1.2 IMEI 1.3 MSISDN 1.4 TMSI 1.5 MSRN 2 区域类标识 2.1 GCI 其中 LA是GSM(2g)中的位置区,对应4G中的跟踪区T ...