導航:首頁 > 編程語言 > javadouble四捨五入int

javadouble四捨五入int

發布時間:2022-08-27 09:56:43

java中,強制轉換符把float轉換為int時,按四捨五入,還是直接丟掉小數部分

直接舍掉小數 比如float是4.7 轉換成int 後是4 而不是5 要四捨五入的話轉換前先加上0.5
比如 int i ; double j = 4.7; i = (int)(j+0.5);

㈡ java怎麼將double四捨五入

// 新方法,如果不需要四捨五入,可以使用RoundingMode.DOWN
BigDecimal bg = new BigDecimal(d).setScale(2, RoundingMode.UP);
return bg.doubleValue();
}

public static String formatDouble3(double d) {
NumberFormat nf = NumberFormat.getNumberInstance();
// 保留兩位小數

㈢ 關於java double類型四捨五入的演算法

這是為什麼呢?

//double類型直接轉換成為BigDecimal還是會造成精度丟失

解決方案

//把double類型首先轉換為String類型,然後再把String類型轉換成BigDecimal類型

實例代碼

importjava.math.BigDecimal;
publicclassB{
publicstaticvoidmain(String[]args){
print0();
print1();
print2();
print3();//解決方案
}

privatestaticvoidprint0(){
doubled=12345.15;
BigDecimalb=newBigDecimal(d);
System.out.println(b);
doubled1=b.setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(d1);
}

privatestaticvoidprint1(){
doubled=1234.115;
BigDecimalb=newBigDecimal(d);
System.out.println(b);
doubled1=b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(d1);
}

privatestaticvoidprint2(){
doubled=2345.115;
BigDecimalb=newBigDecimal(d);
System.out.println(b);
doubled1=b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(d1);
}
privatestaticvoidprint3(){
doubled=2345.115;
BigDecimalb=newBigDecimal(String.valueOf(d));//方案一
//BigDecimalb=newBigDecimal("2345.115");//方案二
//BigDecimalb=newBigDecimal(""+d);//方案三
System.out.println(d);
doubled1=b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(d1);
}
}

輸出

12345.
12345.1//四捨五入保留1位
1234.
1234.12//四捨五入保留2位
2345.
2345.11//四捨五入保留2位
2345.115
2345.12//四捨五入保留2位

㈣ java中,double d,用表達式表示d四捨五入後的int結果

(int) d,自動四捨五入吧

㈤ JAVA 將小數四捨五入成整數的方法

例子:
double d=1.2;
int i = (int)( d + 0.5);

㈥ java怎麼把double四捨五入

(1)首先我們想到用先乘以100取整後再除以100.0這種做法:
System.out.println(Math.round(4.015*100)/100.0);
執行結果為4.01,顯然沒有達到我們想要的結果。

(2)那用java.text.DecimalFormat呢?
System.out.println(new java.text.DecimalFormat("0.00").format(4.015));
System.out.println(new java.text.DecimalFormat("0.00").format(4.025));
執行結果都為4.02。

(3)用java.math.BigDecimal.
Math 類包含用於執行基本數學運算的方法,如初等指數、對數、平方根和三角函數。
提供用於執行任意精度整數演算法 (BigInteger) 和任意精度小數演算法 (BigDecimal) 的類。
double abc = 4.015; //4.025
System.out.println(new java.math.BigDecimal(abc).setScale(2,java.math.BigDecimal.ROUND_HALF_UP).doubleValue());

結果:4.01 (當使用4.025時結果為4.03)
看來還是達不到效果。

(4)用下面的方法:
System.out.println(Math.round(4.015*100 + 0.5)/100.0);

㈦ java中double四捨五入問題

(1)首先我們想到用先乘以100取整後再除以100.0這種做法:
System.out.println(Math.round(4.015*100)/100.0);
執行結果為4.01,顯然沒有達到我們想要的結果。

(2)那用java.text.DecimalFormat呢?
System.out.println(new java.text.DecimalFormat("0.00").format(4.015));
System.out.println(new java.text.DecimalFormat("0.00").format(4.025));
執行結果都為4.02。

(3)用java.math.BigDecimal.
Math 類包含用於執行基本數學運算的方法,如初等指數、對數、平方根和三角函數。
提供用於執行任意精度整數演算法 (BigInteger) 和任意精度小數演算法 (BigDecimal) 的類。
double abc = 4.015; //4.025
System.out.println(new java.math.BigDecimal(abc).setScale(2,java.math.BigDecimal.ROUND_HALF_UP).doubleValue());

結果:4.01 (當使用4.025時結果為4.03)
看來還是達不到效果。

(4)用下面的方法:
System.out.println(Math.round(4.015*100 + 0.5)/100.0);

閱讀全文

與javadouble四捨五入int相關的資料

熱點內容
兩位數互補演算法 瀏覽:781
甲骨文雲伺服器登錄 瀏覽:776
程序員那麼可愛在哪裡可以免費觀看 瀏覽:566
台灣伺服器地址大全 瀏覽:192
安卓自動美顏怎麼關 瀏覽:960
java手動釋放內存 瀏覽:868
迷你世界怎麼自己創伺服器 瀏覽:811
cmd命令不能運行 瀏覽:298
最新pdf閱讀 瀏覽:756
c語言中的排序演算法 瀏覽:597
php原生鏈接資料庫 瀏覽:45
web前端後端程序員 瀏覽:25
萬能zip的壓縮包怎麼解壓 瀏覽:41
國內動漫用什麼app看 瀏覽:354
樹莓派高級編程 瀏覽:929
30歲學編程晚嗎 瀏覽:69
解壓專家怎麼打開 瀏覽:87
php開源留言板 瀏覽:50
新鄉市區疫情怎麼查詢app 瀏覽:159
我的世界伺服器怎麼弄圖 瀏覽:1000