import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
System.out.println("计算f(x) = √x");
System.out.println("请输入若干个数,每输入一个数用回车确认");
System.out.println("最后输入一个非数字结束输入操作");
Scanner reader=new Scanner(System.in);
while(reader.hasNextDouble()) {
double x = reader.nextDouble();
BigDecimal b = new BigDecimal(sqrt(x));
double f1 = b.setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue();
DecimalFormat df = new DecimalFormat("###.0000");
String str = df.format(f1);
System.out.println("f("+x+")"+"的近似值为->"+str);
}
}
public static double sqrt (double c) {
if (c < 0) return Double.NaN;
double err = 1e-15;
double t = c;
while( Math.abs(t - c/t) > err * t)
t = (c/t + t) /2.0;
return t;
}
}
java实现对double类型变量做操作后,四舍五入,取余,保留小数(是否留0)问题
最新推荐文章于 2024-07-15 03:04:09 发布