當前位置:首頁 » 編程語言 » 四捨五入java

四捨五入java

發布時間: 2023-04-06 11:51:42

java如何實現四捨五入運算



背景

最近接觸銀行項目,發現在做金額四捨五入的時候並沒有傳統意義上那麼簡單,銀行為了盡量縮減在這方面的虧損,有一個單獨的銀行家舍入法。


傳統的四捨五入運算


Math.round是在原來的數字的基礎上+0.5然帶念後向下取整。


銀行家舍入法

捨去位的數值小於5時,直接捨去。


捨去位的數值大於5時,進位後捨去。


當捨去位的數值等於5時,若5後面還有其他非0數值,則進位後捨去,若5後面是0時,則根據5前一位數的奇偶性來判斷,奇數進位,偶數捨去。


Java支持的四捨五入方式參數

1、ROUND_UP:遠離零方向舍入。向絕對值最大的方向舍入,只要舍棄位非0即進位。


2、ROUND_DOWN:趨向零方向舍入。向絕對值最小的方向輸入,所有的位都要舍棄,不存在進位情況。


3、ROUND_CEILING:向正無窮方向舍入。向正最大方向靠攏。若是正數,舍入行為類似於ROUND_UP,若為負數,舍入行為類似於ROUND_DOWN。Math.round()方法就是使用的此模式。


4、ROUND_FLOOR:向負無窮方向舍入。向負無窮方向靠攏。若是正數,舍入行為沖行培散唯類似於ROUND_DOWN;若為負數,舍入行為類似於ROUND_UP。


5、HALF_UP:最近數字舍入(5進)。這是我們最經典的四捨五入。


6、HALF_DOWN:最近數字舍入(5舍)。昆明電腦培訓http://www.kmbdqn.cn/建議在這里5是要舍棄的。


7、HAIL_EVEN:銀行家舍入法。


㈡ Java 如何將string中的小數進行四捨五入

java 小數四捨五入
答:import java.math.RoundingMode;import java.text.NumberFormat;public class Snippet {public static void main(String[] args) {double x= 1.9999998;NumberFormat nf = NumberFormat.getInstance();nf.setRoundingMode(RoundingMode.HALF_UP)...
java如何取小數點前兩位,並四捨五入
答:取小數點前兩位,並四捨五入:double m=7237.3589一、DecimalFormat df = new DecimalFormat("#.00");System.out.println(df.format(m));二、System.out.println(String.format("%.2f", m));
如何把java得出的數值,保留小數點2位四捨五入
答:// 方式一: double f = 3.1516; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); // 方式二: new java.text.DecimalFormat("#.00").format(3.1415926); // #.00 表示兩位小數 #.0000...
java中保留兩位小數並要求四捨五入的方法
答:double d=2.345;//格式化為StringString str=String.format("%.2f",d);System.out.println(str);//如果需要數字,可以再d = Double.parseDouble(str)//////////////BigDecimal bd=new BigDecimal("2.345");//建議使用String參數BigDecimal bd_hal...
怎樣用java實現小數的四捨五入
答:public static int round(float a) 返回最接近參數的 int。結果將舍入為整數:加上 1/2,對結果調用 floor 並將所得結果強制轉換為 int 類型。換句話說,結果等於以下表達式的值: (int)Math.floor(a + 0.5f)

㈢ 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中四捨五入保留兩位小數,第三位正好是數字5怎麼處理

使用String.format("鎮空%.2f",num); //num是要處理的數據搜耐

這種方法可以用float,double接收數據類型,我試了一下String接收好像會報錯,小夥伴也可以試一下。可以四捨五入保留兩位小數,但是小數點第二位是0的話會不顯示。以下代碼用到此方法世旅春的語句:value.add(Double.valueOf ( String.format("%.2f", Double.valueOf(list.get(3).replace("\"", ""))*100)));

㈤ Java實現數字的四捨五入並返回指定小數位數

import java.math.RoundingMode;import java.text.NumberFormat;class T { public static void main(String[] args) { System.out.println(function2(123.455, 2)); System.out.println(function2(123.449, 2)); System.out.println(function2(123.44, 3)); System.out.println(function2(123.4455, 3)); System.out.println(function2(123.4499, 3)); System.out.println(function2(123.9, 0)); } public static double function2(double value, int decimalPlaces) { NumberFormat nf = NumberFormat.getNumberInstance(); nf.setRoundingMode(RoundingMode.HALF_UP); // 四舍塵純團五入派橘褲高 nf.setMaximumFractionDigits(decimalPlaces); nf.setMinimumFractionDigits(decimalPlaces); return Double.valueOf(nf.format(value)); }}
輸出結果
123.46
123.45
123.44
123.446
123.45
124.0

㈥ 怎樣用java實現小數的四捨五入

我喜歡用 一個小數加上0.5,這樣改五入的就進位了,該四舍的就沒進位。
然後用一個Math.floor(a)就可以了
a是加過0.5厚的小數

㈦ java 兩個數相除後四捨五入並保留兩位小數有哪些方式


1 double f = 3.1516;
BigDecimal b = new BigDecimal(f);
2 double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()
new java.text.DecimalFormat("#.00").format(3.1415926)


3 double d = 3.1415926;
String result = String.format("%.2f", d);
// %.2f %. 表示 小數點前任意位數 2 表示兩位小數 格式後的結果為f 表示浮點型。


4 Math.round(5.2644555 * 100) * 0.01d;
//String.format("%0" + 15 + "d", 23) 23不足15為就在前面補0

㈧ java四捨五入的函數

java四捨五入的函數:Math.round
語法:
Math.round(x);
參數:
x 為一數值。
解釋:
方法。返回對參數x四捨五入後所得的整數近似值。
例子:
public class MathTest {
public static void main(String[] args) {

System.out.println("小數點後第一位=5");
System.out.println("正數:Math.round(11.5)=" + Math.round(11.5));
System.out.println("負數:Math.round(-11.5)=" + Math.round(-11.5));
System.out.println();

System.out.println("小數點後第一位<5");
System.out.println("正數:Math.round(11.46)=" + Math.round(11.46));
System.out.println("負數:Math.round(-11.46)=" + Math.round(-11.46));
System.out.println();

System.out.println("小數點後第一位>5");
System.out.println("正數:Math.round(11.68)=" + Math.round(11.68));
System.out.println("負數:Math.round(-11.68)=" + Math.round(-11.68));
}
}

運行結果:

1、小數點後第一位=5
2、正數:Math.round(11.5)=12
3、負數:Math.round(-11.5)=-11
4、
5、小數點後第一位<5
6、正數:Math.round(11.46)=11
7、負數:Math.round(-11.46)=-11
8、
9、小數點後第一位>5
10、正數:Math.round(11.68)=12
11、負數:Math.round(-11.68)=-12

㈨ java中小數怎麼四捨五入

java中如果精確一點的小數位比較多,類型建議使用BigDecimal,資料庫存儲用decimal類型。

.你的問題是想做四捨五入,並指定精確小數位數。BigDecimal..setScale(需要精確的小數位數例如:3, BigDecimal.ROUND_HALF_UP); 如圖所示:如果想要確定小數位數,可以用正則取出需要精確的位數,再去傳輸需要精確的小數位數。

指定小數位數,並且都做四捨五入即可

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

直接舍掉小數。

例如:

int 3.14,結果為

Int是將一個數值向下取整為最接近的整數的函數。INT是資料庫中常用函數中的取整函數,常用來判別一個數能否被另一個數整除。


(10)四捨五入java擴展閱讀

int 函數使用的注意事項:

1、 語法int(number)其中number是需要進行向下舍入取整的實數。

2、 int函數是不進行四捨五入,直接去掉小數部分取整。

3、int函數處理負數的小數時總是向上進位的。

熱點內容
android讓狀態欄透明 發布:2024-11-02 12:20:09 瀏覽:180
java反射使用 發布:2024-11-02 12:09:03 瀏覽:920
賺錢游戲掛機腳本鏈接 發布:2024-11-02 12:08:22 瀏覽:810
windowsxp用戶名和密碼是什麼啊 發布:2024-11-02 12:03:13 瀏覽:950
工行解壓碼 發布:2024-11-02 12:03:07 瀏覽:118
本田冠道出廠配置什麼牌子輪胎 發布:2024-11-02 12:03:07 瀏覽:470
怎麼打開被gcc編譯過的軟體 發布:2024-11-02 12:00:52 瀏覽:435
新時達as380原始密碼是多少 發布:2024-11-02 11:51:27 瀏覽:810
導航網站源碼下載 發布:2024-11-02 11:49:55 瀏覽:976
飢荒搭建的伺服器如何換新檔 發布:2024-11-02 11:48:11 瀏覽:958