怎么解决BigDecimal里面无限循环小数的问题

怎么解决BigDecimal里面无限循环小数的问题,第1张

无限循环小数就是字面上的意思,比如10/3=3.33333,循环小数都可以化为分数,是有理数。 无限小数包括但不都是循环小数,比如圆周率pi是无限小数,但是不循环,无限不循环小数是无理数。

     加:add(BigDecima)

     减:subtract(BigDecimal)

     乘:multiply(BigDecimal)

     除:divide(BigDecimal)

     乘方:pow(BigDecimal)

     取绝对值:abs()

     取反:negate()

     对比:compareTo(BigDecimal)

     设置小数点精确度:setScale(int)

     设置保留小数点精确度并添加保留方式(直接加1或者四舍五入):setScale(int, int)

简单。用代码说话吧。

public class Test {

public static void main(String args[]) {

BigDecimal bd = new BigDecimal("1234567890123456789012345678901234567890")

BigDecimal bd22 = new BigDecimal("1234567890123456789012345678901234567890")

System.out.println(bd.multiply(bd22))

}

}

得出结果:

1524157875323883675049535156256668194500533455762536198787501905199875019052100

回答补充的:

既然BigDecimal你会用,那么随机产生一个50位的数不是也是小菜一碟吗?随机产生一个50位的纯数字字符串在转成string类型不就好了。至于怎么放数组哪个不能为空,这个是基本的吧不多说了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7899315.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存