1、错误描述
Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
at java.math.BigDecimal.divide(BigDecimal.java:1616)
at com.you.example.BigDecimals.main(BigDecimals.java:40)
2、错误原因
/**
*
* 项目名称:DABF
* 项目包名:com.you.example
* 文件名称:BigDecimals.java
* 类型名称:BigDecimals
* 创建作者:游海东
* 创建日期:2017-1-11
* 创建时间:上午10:45:54
* 项目版本:V1.0
*/
package com.you.example;
import java.math.BigDecimal;
/**
* 文件名称:BigDecimals.java
* 文件类型:BigDecimals
* 文件包名:com.you.example
* 创建作者:游海东
* 创建日期:2017-1-11
* 创建时间:上午10:45:54
*/
public class BigDecimals {
/**
* 方法描述:
* 创建作者:游海东
* 创建日期:2017-1-11
* 创建时间:上午10:45:54
* 方法名称:main
* 方法类型:BigDecimals
* 返回类型:void
* @param args
*/
public static void main(String[] args) {
BigDecimal a = new BigDecimal(200);
BigDecimal b = new BigDecimal(3);
System.out.println(a.divide(b));
}
}
BigDecimal 在做除法运算时,遇到无限循环小数,会报这个错误3、解决办法
BigDecimal 做除法需要对小数进行四舍五入
/**
*
* 项目名称:DABF
* 项目包名:com.you.example
* 文件名称:BigDecimal.java
* 类型名称:BigDecimal
* 创建作者:游海东
* 创建日期:2017-1-11
* 创建时间:上午10:45:54
* 项目版本:V1.0
*/
package com.you.example;
import java.math.BigDecimal;
/**
* 文件名称:BigDecimal.java
* 文件类型:BigDecimal
* 文件包名:com.you.example
* 创建作者:游海东
* 创建日期:2017-1-11
* 创建时间:上午10:45:54
*/
public class BigDecimals {
/**
* 方法描述:
* 创建作者:游海东
* 创建日期:2017-1-11
* 创建时间:上午10:45:54
* 方法名称:main
* 方法类型:BigDecimal
* 返回类型:void
* @param args
*/
public static void main(String[] args) {
BigDecimal a = new BigDecimal(200);
BigDecimal b = new BigDecimal(3);
System.out.println(a.divide(b,2,BigDecimal.ROUND_HALF_UP));
}
}