BigDecimal的setScale常用方法(ROUND_UP、ROUND_DOWN、ROUND_HALF_UP、ROUND_HALF_DOWN)
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)的更多相关文章
- Java中BigDecimal类的常用方法
1.简介 BigDecimal类位于java.math.BigDecimal包下.使用此类可以完成大的小数操作,而且也可以使用此类进行精确的四舍五入,这一点在开发中经常使用. 对于不需要任何准确计算精 ...
- BigDecimal的setScale()方法无效(坑)
最近在使用BigDecimal进行四舍五入时,发现setScale()方法设置的精度值并没有起作用,一度让我怀疑起是否jdk有bug,代码如下: 错误代码 double d = 7.199999999 ...
- 关于BigDecimal.ROUND_HALF_UP与ROUND_HALF_DOWN
ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1 BigDecimal a ...
- java取整和java四舍五入方法 BigDecimal.setScale()方法详解
import java.math.BigDecimal; public class TestGetInt { public static void main(String[] args) { doub ...
- BigDecimal 高精度计算 熟悉扩展,java除法保留小数问题
java保留两位小数问题: 方式一: 四舍五入 double f = 111231.5585; BigDecimal b = new BigDecimal(f); d ...
- [十七]基础类型BigDecimal简介
BigDecimal是不可变的.任意精度的.有符号的.十进制数. 组成部分 BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成 BigDecimal ...
- BigDecimal 用法总结
转载请注明出处: 目录 1.BigDecimal 简介 2.构造BigDecimal的对象 3.常用方法总结 4.divide方法使用 5.setScale 方法使用 6.BigDecimal 数据库 ...
- 关于BigDecimal 和 double 类型保存金钱,以及精度问题,银行家舍入法
1. BigDecimal 类型数据 的创建,构造函数 有 public BigDecimal(BigInteger intVal, long val, int scale, int prec); p ...
- 简单BigDecimal运算精度
项目中遇到了数值运算,如网上所写的,一般有这几个方法: /** * 提供精确的加法运算. * @param v1 被加数 * @param v2 加数 * @return 两个参数的和 */ publ ...
随机推荐
- js面试题(转)
https://segmentfault.com/a/1190000015288700 1 介绍JavaScript的基本数据类型 Number.String .Boolean .Null.Undef ...
- 8.1Go并发
第八章 Go并发 Go语言区别于其他语言的一大特点就是出色的并发性能,最重要的一个特性那就是go关键字. 并发场景: UI小姐姐一边开着PS软件,一边微信疯狂的和产品经理打字交流,后台还听着网易云音乐 ...
- C# 数据操作系列 - 12 NHibernate的增删改查
0. 前言 上一篇<C# 数据操作系列 - 11 NHibernate 配置和结构介绍> 介绍了Nhibernate里的配置内容.这一篇将带领大家了解一下如何使用NHIbernate.之前 ...
- Poj 3013基础最短路
Description Christmas is coming to KCM city. Suby the loyal civilian in KCM city is preparing a big ...
- C语言经典笔试题目
1.bool,float,指针变量 与 “零值” 比较的if语句 注意点:c语言中bool类型采用整数存储,0为false,非0均为true; float类型采用IEEE754标准,第一位符号位,中间 ...
- 计算两点间的距离(hdu2001)
注意:在C语言中,double->lf,结果保留两位小数->0.2lf #include<stdio.h> #include<math.h> using names ...
- js 获取百度搜索关键词的代码
有可能有时候我们会用到在百度搜什么关键词进来我们的网站的,所有我们又想拿到用户搜索的关键词. 这是我研究了半天所得出的办法.话不多说直接贴代码 <script> function quer ...
- PHP 获取上个月1号和上个月最后一天时间戳,下个月1号和下个月最后一天的时间戳
// 上个月的时间戳 $thismonth = date('m'); $thisyear = date('Y'); if ($thismonth == 1) { $lastmonth = 12; $l ...
- C#网络编程入门之TCP
目录: C#网络编程入门系列包括三篇文章: (一)C#网络编程入门之UDP (二)C#网络编程入门之TCP (三)C#网络编程入门之HTTP 一.概述 UDP和TCP是网络通讯常用的两个传输协议,C# ...
- [译]Tus 协议
原文地址:https://tus.io/protocols/resumable-upload.html 摘要 该协议提供一种基于 HTTP/1.1 和 HTTP/2 机制用于文件断点续传. 核心协议 ...