導航:首頁 > 編程語言 > 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相關的資料

熱點內容
程序員的職業發展前途 瀏覽:602
安卓是世界上多少個程序員開發 瀏覽:43
解壓器官方免費 瀏覽:85
單片機p10開發 瀏覽:486
做什麼app賺錢 瀏覽:83
博途編譯失敗聯系客戶支持部門 瀏覽:927
金蝶旗艦版編譯 瀏覽:51
萬象伺服器斷電後啟動不了怎麼辦 瀏覽:356
我的世界蘋果版的2b2t伺服器地址咋查 瀏覽:95
xlsx轉換pdf 瀏覽:98
3dmax擠出命令英語 瀏覽:903
靶心率的定義和演算法 瀏覽:514
3d模術師app哪裡下載 瀏覽:474
php中文api文檔 瀏覽:458
安卓設計怎麼加入輸入框 瀏覽:185
主根伺服器什麼時候開始 瀏覽:738
奇門遁甲完整版pdf 瀏覽:904
app軟體怎麼用的 瀏覽:804
電子書pdf購買 瀏覽:195
浪潮伺服器如何做系統 瀏覽:113