关于BigDecimal的四舍五入和截断 (2007-08-10 15:06:26)
关于四舍五入:
ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2
ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1
BigDecimal a = new BigDecimal(1.5); System.out.println("down="+a.setScale(0,BigDecimal.ROUND_HALF_DOWN)+"\tup="+a.setScale
(0,BigDecimal.ROUND_HALF_UP));
结果:down=1 up=2
关于BigDecimal的截断:
BigDecimal aa = new BigDecimal(99.999);
aa=aa.setScale(2,BigDecimal.ROUND_DOWN);
结果:aa=99.99,即在小数点后两位处截断。
其他参数说明
ROUND_CEILING
如果BigDecimal是正的,则做ROUND_UP操作;
如果为负,则做ROUND_DOWN操作。
ROUND_FLOOR
如果BigDecimal为正,则作ROUND_UP;
如果为负,则作ROUND_DOWN。
ROUND_HALF_DOWN
若舍弃部分> 0.5,则作ROUND_UP;
否则,作ROUND_DOWN。
ROUND_HALF_EVEN
如果舍弃部分左边的数字为奇数,则作ROUND_HALF_UP;
如果它为偶数,则作ROUND_HALF_DOWN。
ROUND_HALF_UP
若舍弃部分>=.5,则作ROUND_UP;否则作ROUND_DOWN。
ROUND_UNNECESSARY
该“伪舍入模式”实际是指明所要求的操作必须是精确的,
因此不需要舍入操作。
ROUND_UP
总是在非0舍弃小数(即截断)之前增加数字。
(其实就是只要不是0,就进一位的意思)
ROUND_DOWN
从不在舍弃(即截断)的小数之前增加数字(其实就是截断的意思)。
关于BigDecimal的四舍五入和截断 (2007-08-10 15:06:26)的更多相关文章
- BigDecimal介绍及BigDecimal实现四舍五入
BigDecimal介绍及BigDecimal实现四舍五入 BigDecimal是什么? 我们知道float最大精度是7-8位有效数字,而double的最大精度是16-17位有效数字,那么大于16位的 ...
- 新手C#SQL Server使用记录2018.08.10
主键(PrimaryKey):主键就是每个数据行(记录)的唯一标识,不会有重复值的列(字段)才能当做主键.一个表可以没有主键,但是这样会很难处理表,因此一般情况表都要设置主键. 主键有两张选用策略,分 ...
- 068 01 Android 零基础入门 01 Java基础语法 08 Java方法 06 参数传递问题——基本数据类型传值
068 01 Android 零基础入门 01 Java基础语法 08 Java方法 06 参数传递问题--基本数据类型传值 本文知识点:参数传递问题--基本数据类型传值 说明:因为时间紧张,本人写博 ...
- 2021.08.10 Euler函数总结
2021.08.10 Euler函数总结 知识: 记 φ(n) 表示在 [1,n] 中与 n互质的数的个数. 1.p为质数,则 \[φ(p^l)=p^l-p=p^{l-1}(p-1) \] 注:每p个 ...
- java中BigDecimal的四舍五入小记
static class test{ public static void main(String[] args) { BigDecimal b=new BigDecimal(45); BigDeci ...
- mysql保留关键字 BigDecimal Double 四舍五入
`desc` 需要加引号 BigDecimal progress = new BigDecimal(0.444); progress=progress.setScale(2, BigDecimal ...
- swift--浮点数转换成整数(四舍五入/直接截断)
1,直接截取小数部分转换成整数 let i = Int(23.52536) print("输出是:\(i)") 2,四舍五入转换成证书 let q = lround(586.565 ...
- kbmMW 5.08.10试用报告
1.不兼容Android 基于5.07的项目,升级到5.08,不能编译android app.已经反应给作者.作者回复将近快发布fixed,修正这个问题及其他发现的问题. 5.08.01解决了andr ...
- ffmpeg-201612[01,08,10,17,21,27,30]-bin.7z
ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 5 屏幕横向放大 20 像素 6 屏幕横向缩小 20 像素 S 下一帧 [ -2秒 ] +2 ...
随机推荐
- oracle 删除用户,表空间;循环删除表
select * from dba_tablespaces 说明:查看所有表空间 ----------------------------------------------------------- ...
- 20160722noip模拟赛alexandrali
[题目大意] 有许多木块, 叠放时, 必须正着叠放, 如图1, 左边两块为合法叠放, 右边为不合法叠放. 图1 一个方块被称为稳定的, 当且仅当其放在最底层, 或其正下方有方块且下方的这个方块的四周都 ...
- 【Entity Framework】 Entity Framework资料汇总
Fluent API : http://social.msdn.microsoft.com/Search/zh-CN?query=Fluent%20API&Refinement=95& ...
- netbeans 7安装xdebug调试php程序
1.下载安装xdebug 先从xdebug官网下载对应php版本的xdebug组件,下载地址是:http://www.xdebug.org/download.php 如果不确定下载哪个版本的xdebu ...
- ubuntu下安装spark1.4.0
构建在hadoop2.6.0之上的 1.在官网下载spark-1.4.0-bin-hadoop2.6.tgz 2.解压到你想要放的文件夹里,tar zxvf spark-1.4.0-bin-hadoo ...
- Relevance Between Variable Declaration and Definition in C++
A declaration makes a name known to a programm. A definition creates the assocatied entity. A variab ...
- 关于ios 8 7 下的模态窗口大小的控制 代碼+場景(mainstoryboard)( Resizing UIModalPresentationFormSheet )
1 代碼 UIViewController* modalController = [[UIViewController alloc]init];modalController.modalTransit ...
- 【转载】关于ActionContext.getContext().getParameters()获值问题
ActionContext.getContext().getParameters():一个学员问题的解答 2012-11-12 15:12:05| 分类: 默认分类 | 标签:struts2 ...
- 此版本的 SQL Server 不支持用户实例登录标志。该连接将关闭“的解决
此版本的 SQL Server 不支持用户实例登录标志.该连接将关闭“的解决(转) 2008-10-04 13:31 错误提示:说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息 ...
- APAC Practice
2016 round A A. Googol String small && large LL a[]; int dfs(LL pos, int id, bool f) { || po ...