Ⅰ 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));
}