Ⅰ java中怎么控制double的小数位数
import java.text.DecimalFormat;
public class Main {
public static void main(String[] args) {
DecimalFormat df = new DecimalFormat( "0.0000 ");
double d1 = 1.0;
double d2 = 4.56789;
System.out.println(df.format(d1));
System.out.println(df.format(d2));
}
}
Ⅱ java的double型怎么保留小数点后8位而且不失真
1、String.format("%.8f", 1.098765432)
2、new java.text.DecimalFormat("#.00000000").format(nu1.098765432)
这两个都是使用四舍五入,不会失真。
Ⅲ java中怎样解决double型数据小数位数的控制
可以使用BigDecimal来控制double小数点位数:
如图所示:
Ⅳ java double 双精度浮点型问题
sheshi = huashi/3.0;
这样子就没问题啦,
因为huashi这个变量是整形,3也是整形,所以运行/操作得时候就是取整,所以得到26,然后再转换成double,所以输出就是26.0,
所以运算时用浮点型加入运算就是除的操作啦
Ⅳ JAVA怎么解决double精度问题。比如1.2*3=3.599...996这种。
public static double add(double d1,double d2){
BigDecimal b1=new BigDecimal(Double.toString(d1));
BigDecimal b2=new BigDecimal(Double.toString(d2));
return b1.add(b2).doubleValue();
}
public static double sub(double d1,double d2){
BigDecimal b1=new BigDecimal(Double.toString(d1));
BigDecimal b2=new BigDecimal(Double.toString(d2));
return b1.subtract(b2).doubleValue();
}
public static double mul(double d1,double d2){
BigDecimal b1=new BigDecimal(Double.toString(d1));
BigDecimal b2=new BigDecimal(Double.toString(d2));
return b1.multiply(b2).doubleValue();
}
public static double div(double d1,double d2){
return div(d1,d2,DEF_DIV_SCALE);
}
public static double div(double d1,double d2,int scale){
//scale 是小数点后要保留的位数
if(scale<0){
throw new IllegalArgumentException("精度不能小于零");
}
BigDecimal b1=new BigDecimal(Double.toString(d1));
BigDecimal b2=new BigDecimal(Double.toString(d2));
return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
用的时候调用这几个方法。
Ⅵ java中double型如何控制有效数字输出位数或精度
java中 double 类型只是一个简单类型,是不能其输出位数及精度是固定的
可以利用其它方法进行位数输出,如:
public static void main(String[] args) {
// 1. 使用 String.format() 方法
double data = 11.8982389283293;
System.out.println(String.format("%.2f", data));
// 2. 使用 printf 输出
System.out.printf("%.2f", data);
// 3. 使用 DecimalFormat 对象格式化
DecimalFormat format = new DecimalFormat("#.00");
System.out.println(format.format(data));
}