BigDecimal怎么开方? 求助,BigDecimal怎么开方?因为我操作的数比较大,所以选择了BigDecimal数据类型,但是发现BigDecimal没有开方函数,如果转换为double就有可能丢失数据准确度。我该怎么办?一定要自己写吗?谁有比较好的办法?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.math.BigDecimal;import java.math.MathContext;public class Test5 { public static void main(String[] args) { BigDecimal n = new BigDecimal("2"); BigDecimal r = sqrt(n); System.out.println(r.toString()); } public static BigDecimal sqrt(BigDecimal num) { if(num.compareTo(BigDecimal.ZERO) < 0) { return BigDecimal.ZERO; } BigDecimal x = num.divide(new BigDecimal("2"), MathContext.DECIMAL128); while(x.subtract(x = sqrtIteration(x, num)).abs().compareTo(new BigDecimal("0.0000000000000000000001")) > 0); return x; } private static BigDecimal sqrtIteration(BigDecimal x, BigDecimal n) { return x.add(n.divide(x, MathContext.DECIMAL128)).divide(new BigDecimal("2"), MathContext.DECIMAL128); }} 懂jxl的朋友来一下!!! JTextField填写内容使用正则表达式匹配出问题了 江湖求救~~~JAVA二维数组问题~急急急 java 静态方法如何访问非静态的变量 小弟在初学JAVA,遇到一些问题,请各位帮助解决一下!!!!! 比较底层的问题,关于网络的 我在下载j2sdk的过程中遇到的问题 求助,Java与python有没有类似jni的框架 一个简单问题? 为什么这个程序在别人的电脑可以运行,我的不行 页面有个播放器,播放歌曲,然后根据播放的歌曲,生成一个选择题,让选择现在播放的歌曲的名字,怎么来实现? 有项目经验的大哥们说说项目中的命名问题
import java.math.MathContext;public class Test5 {
public static void main(String[] args) {
BigDecimal n = new BigDecimal("2");
BigDecimal r = sqrt(n);
System.out.println(r.toString());
}
public static BigDecimal sqrt(BigDecimal num) {
if(num.compareTo(BigDecimal.ZERO) < 0) {
return BigDecimal.ZERO;
}
BigDecimal x = num.divide(new BigDecimal("2"), MathContext.DECIMAL128);
while(x.subtract(x = sqrtIteration(x, num)).abs().compareTo(new BigDecimal("0.0000000000000000000001")) > 0);
return x;
}
private static BigDecimal sqrtIteration(BigDecimal x, BigDecimal n) {
return x.add(n.divide(x, MathContext.DECIMAL128)).divide(new BigDecimal("2"), MathContext.DECIMAL128);
}
}