zoukankan      html  css  js  c++  java
  • Non-terminating decimal expansion; no exact representable decimal result

    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));
    	}
    
    }
    



  • 相关阅读:
    Oracle11g新建用户及用户表空间
    PLSQL连接oracle12c
    Zabbix微信报警脚本及写触发记录
    使用document.select(Jquery Css selector) selector:看jsoup文档来敲案例学习 selector选择器
    仙女打卡day1
    XML的解析(读取),附带源码与运行效果图 (day01)
    [Luogu] P7077 函数调用
    [Luogu] P5815 [CQOI2010]扑克牌
    [Luogu] CF364D Ghd
    [Luogu] P4823 [TJOI2013]拯救小矮人
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13313980.html
Copyright © 2011-2022 走看看