Java里面BigDecimal.divide()方法能不能实现保留小数点前后共35位这样的操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java里面BigDecimal.divide()方法能不能实现保留小数点前后共35位这样的操作相关的知识,希望对你有一定的参考价值。
就是两个数相除以后,除不尽的情况下可以保留小数点前后一共35位的情况,当然如果小数点前面的位数已经达到35位就会省略小数点后面的位数。。。。。
没有这样的方法,你自己封装一个就行了啊,把结果转成35位就行了追问我不会啊,会的话就不提问了
追答BigDecimal bd1 = new BigDecimal("30000000000000000000000000000000000000000000000000000000000");
BigDecimal bd2 = new BigDecimal(3);
//MathContext,第一个参数表示你要保留几位小数,第二参数表示最后一位你是取顶,还是取底,还是四舍五入等,自己稍微看下就知道了
System.out.println(bd1.divide(bd2, new MathContext(35, RoundingMode.HALF_UP)).toPlainString());
这个是BigDecimal自带的方法,但是有个地方不能满足你,比如30/3,他就只输出10,不会输出为10.00000000000000.如果你需要的话,可以再帮你改一下
java的属性只能在类里面 方法外面定义
java的属性只能在类里面 方法外面定义 区别于python;python 既能在类里面(类属性) 又能在方法里面定义属性(实例属性)
以上是关于Java里面BigDecimal.divide()方法能不能实现保留小数点前后共35位这样的操作的主要内容,如果未能解决你的问题,请参考以下文章
在 BigDecimal.divide 期间引发 ArithmeticException
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal res