当bigdecimal除不尽(循环小数)后会报错,下面的是BigDecimal ,divide方法提供的精确小数方法(推荐使用)

BigDecimal avgCapital = loanAmount.divide(new BigDecimal(monthTotal),2,BigDecimal.ROUND_HALF_UP);

1、ROUND_UP  
舍入远离零的舍入模式。  
在丢弃非零部分之前始终增加数字(始终对非零舍弃部分前面的数字加1)。  
注意,此舍入模式始终不会减少计算值的大小。  
2、ROUND_DOWN  
接近零的舍入模式。  
在丢弃某部分之前始终不增加数字(从不对舍弃部分前面的数字加1,即截短)。  
注意,此舍入模式始终不会增加计算值的大小。  
3、ROUND_CEILING  
接近正无穷大的舍入模式。  
如果 BigDecimal 为正,则舍入行为与 ROUND_UP 相同;  
如果为负,则舍入行为与 ROUND_DOWN 相同。  
注意,此舍入模式始终不会减少计算值。  
4、ROUND_FLOOR  
接近负无穷大的舍入模式。  
如果 BigDecimal 为正,则舍入行为与 ROUND_DOWN 相同;  
如果为负,则舍入行为与 ROUND_UP 相同。  
注意,此舍入模式始终不会增加计算值。  
5、ROUND_HALF_UP  
向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为向上舍入的舍入模式。  
如果舍弃部分 >= 0.5,则舍入行为与 ROUND_UP 相同;否则舍入行为与 ROUND_DOWN 相同。  
注意,这是我们大多数人在小学时就学过的舍入模式(四舍五入)。  
6、ROUND_HALF_DOWN  
向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为上舍入的舍入模式。  
如果舍弃部分 > 0.5,则舍入行为与 ROUND_UP 相同;否则舍入行为与 ROUND_DOWN 相同(五舍六入)。  
7、ROUND_HALF_EVEN  
向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。  
如果舍弃部分左边的数字为奇数,则舍入行为与 ROUND_HALF_UP 相同;  
如果为偶数,则舍入行为与 ROUND_HALF_DOWN 相同。  
注意,在重复进行一系列计算时,此舍入模式可以将累加错误减到最小。  
此舍入模式也称为“银行家舍入法”,主要在美国使用。四舍六入,五分两种情况。  
如果前一位为奇数,则入位,否则舍去。  
以下例子为保留小数点1位,那么这种舍入方式下的结果。  
1.15>1.2 1.25>1.2  
8、ROUND_UNNECESSARY  
断言请求的操作具有精确的结果,因此不需要舍入。  
如果对获得精确结果的操作指定此舍入模式,则抛出ArithmeticException。

BigDecimal之除不尽报错的更多相关文章

  1. Java报错:java.math.BigDecimal cannot be cast to java.lang.String

    从数据库取数字,转为string,报错: java.math.BigDecimal cannot be cast to java.lang.String 错误代码 Integer.parseInt(( ...

  2. hibernate报错Unknown integral data type for ids : java.lang.String

    package com.model; // Generated 2016-10-27 14:02:17 by Hibernate Tools 4.3.1.Final /** * CmDept gene ...

  3. elasticsearch查询:启动项目报错No property ... found for...Did you mean '...'?

    网上找的案例是: 实体类字段定义:private String sku_no;dao中接口名定义:Goods findBySkuNo(String skuNo);spring-data按照接口方法定义 ...

  4. Windows 7上执行Cake 报错原因是Powershell 版本问题

    在Windows 7 SP1 电脑上执行Cake的的例子 http://cakebuild.net/docs/tutorials/getting-started ,运行./Build.ps1 报下面的 ...

  5. 关于VS2015 ASP.NET MVC添加控制器的时候报错

    调试环境:VS2015 数据库Mysql  WIN10 在调试过程中出现类似下两图的同学们,注意啦. 其实也是在学习的过程中遇到这个问题的,找了很多资料都没有正面的解决添加控制器的时候报错的问题,还是 ...

  6. php报错 ----> Call to undefined function imagecreatetruecolor()

    刚才在写验证码的时候,发现报错,然后排查分析了一下,原来是所用的php版本(PHP/5.3.13)没有开启此扩展功能. 进入php.ini 找到extension=php_gd2.dll ,将其前面的 ...

  7. scp报错 -bash: scp: command not found

    环境:RHEL6.5 使用scp命令报错: [root@oradb23 media]# scp /etc/hosts oradb24:/etc/ -bash: scp: command not fou ...

  8. VS2015使用scanf报错的解决方案

    1.在程序最前面加: #define _CRT_SECURE_NO_DEPRECATE 2.在程序最前面加: #pragma warning(disable:4996) 3.把scanf改为scanf ...

  9. VS项目中使用Nuget还原包后编译生产还一直报错?

    Nuget官网下载Nuget项目包的命令地址:https://www.nuget.org/packages 今天就遇到一个比较奇葩的问题,折腾了很久终于搞定了: 问题是这样的:我的解决方案原本是好好的 ...

随机推荐

  1. 九、配置Tomcat集群

    配置Tomcat集群所需服务器三台:192.168.1.5(调度服务器).192.168.1.10(WEB1),192.168.1.20(WEB2) 1.调度服务器设置 [root@proxy ~]# ...

  2. 二、特殊DNS解析

    一.DNS轮询 1.为站点 www.tedu.cn 提供DNS轮询解析,三台Web服务器节点的IP地址分别为: 192.168.4.10.192.168.4.20.192.168,4.30 步骤: 虚 ...

  3. ES5中的类

    之前小编对于类和类的基本特征(所谓的封装.继承.多态)理解一直不是很到位,同时在实际项目应用中也用的比较少,今天小编就结合ES5中的基本用法和大家聊聊,希望小伙伴会在这篇文章有属于自己的收获,并能够在 ...

  4. QueryTable的使用以及错误

    1.QuerySeter的filter使用遇到的错误 1.1 Filter里的字段名和操作符要用双下划线."__" 不是" _",否则会被认为成是列名的一部分, ...

  5. [Linux]经典面试题 - 网络基础 - TCP三次握手

    [Linux]经典面试题 - 网络基础 - TCP三次握手 目录 [Linux]经典面试题 - 网络基础 - TCP三次握手 一.TCP报文格式 1.1 TCP报头 1.2 报文图例 二.TCP三次握 ...

  6. 第三节:Redis缓存雪崩、击穿、穿透、双写一致性、并发竞争、热点key重建优化、BigKey的优化 等解决方案

    一. 缓存雪崩 1. 含义 同一时刻,大量的缓存同时过期失效. 2. 产生原因和后果 (1). 原因:由于开发人员经验不足或失误,大量热点缓存设置了统一的过期时间. (2). 产生后果:恰逢秒杀高峰, ...

  7. .NET Core/.NET5/.NET6 开源项目汇总9:客户端跨平台UI框架

    系列目录     [已更新最新开发文章,点击查看详细] .NET Core 实现了跨平台,支持在 Windwos.Linux.macOS上开发与部署,但是也仅限于Web应用程序.对于Windows桌面 ...

  8. 【译】在运行时编辑代码的 .NET 热重载

    今天,我们很高兴向你介绍 Visual Studio 2019 中 16.11(预览版1)中的 .NET 热重载(通过 .NET 6(预览版4)中的 dotnet watch 命令行工具).在这篇文章 ...

  9. Java:HttpPost 传输Json数据过长使用HttpServletRequest解析

    直接上代码 /** * 测试生成json数据 */ @Test public void synYxGoodsInfoTest() { try { String url = "http://1 ...

  10. idea中IDEA优化配置

    进入IDEA 设置.两种方法: 1,File  -> Settings 2,工具栏有个工具按钮点下(假如没工具栏,View -> 选下Toolbar) 进入设置页面,从上到下,主要是 外观 ...