四捨五入java
㈠ 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函數處理負數的小數時總是向上進位的。