public static void main(String[] args) {
double i=1.0;
double sum=0.0;
for(;;)
{
sum = sum+(double)(1/i);
i++;
if((double)(1/i)<0.000001)
break;
}
System.out.print(sum);
}
这个输出的值是14.392726722864989
可是我想限定他的小数位数
怎么办
double i=1.0;
double sum=0.0;
for(;;)
{
sum = sum+(double)(1/i);
i++;
if((double)(1/i)<0.000001)
break;
}
System.out.print(sum);
}
这个输出的值是14.392726722864989
可是我想限定他的小数位数
怎么办
输出的话用printf吧
import java.math.*;public class SetScale {
public static void main(String args[]){
double d = 14.392726722864989;
BigDecimal bd = new BigDecimal(String.valueOf(d));
System.out.println(bd.setScale(2, RoundingMode.HALF_DOWN).toPlainString());//保留2位小数
DecimalFormat df = new DecimalFormat("##.##");
System.out.println(df.format(d));
}
}
推荐第一个,因为不用管整数部分的长度。
NumberFormat num = NumberFormat.getInstance();
num.setMinimumFractionDigits(6);//设置数的小数部分所允许的最小位数为6位
System.out.print(num.format(sum));
import java.text.DecimalFormat;public class Main { public static void main(String[] args) {
double i = 1.0;
double sum = 0.0;
for (;;) {
sum = sum + (double) (1 / i);
i++;
if ((double) (1 / i) < 0.000001)
break;
}
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(4);
System.out.print(df.format(sum));//输出:14.3927
}}
double i = 1.0;
double sum = 0.0;
for (;;) {
sum = sum + (double) (1 / i);
i++;
if ((double) (1 / i) < 0.000001)
break;
}
System.out.printf("%.2f", sum);
}