Java Bigdecimal抛出异常
我写了这段代码:Java Bigdecimal抛出异常,java,bigdecimal,Java,Bigdecimal,我写了这段代码: BigDecimal nummer = new BigDecimal("8340337220.0"); BigDecimal denominator = new BigDecimal("17.O"); BigDecimal result = nummer.divide(denominator); System.out.println(result); 在eclipse中运行后,它会给我: Exception in thread "main" java.lang.NumberF
BigDecimal nummer = new BigDecimal("8340337220.0");
BigDecimal denominator = new BigDecimal("17.O");
BigDecimal result = nummer.divide(denominator);
System.out.println(result);
在eclipse中运行后,它会给我:
Exception in thread "main" java.lang.NumberFormatException
at java.math.BigDecimal.<init>(BigDecimal.java:459)
at java.math.BigDecimal.<init>(BigDecimal.java:728)
at main.main(main.java:10)
线程“main”java.lang.NumberFormatException中的异常
在java.math.BigDecimal.(BigDecimal.java:459)
在java.math.BigDecimal.(BigDecimal.java:728)
main.main(main.java:10)
有人能帮我吗?看起来你在
“17.O”
中有一个大写字母“O”。替换为零:
BigDecimal denominator = new BigDecimal("17.0");
谢谢,我的错。现在我得到了这个:线程“main”java.lang中的异常。算术异常:非终止十进制扩展;没有可精确表示的十进制结果。大小数是任意精度,但不是无限精度。你需要使用
divide
方法,该方法采用整数刻度和RoundingMode
。你发现了什么问题?
BigDecimal nummer = new BigDecimal("83227720.0");
BigDecimal denominator = new BigDecimal("17.0");
BigDecimal result = nummer.divide(denominator,10,RoundingMode.DOWN);
System.out.println(result);