北大青鳥java培訓(xùn):Java如何實現(xiàn)四舍五入運算?
背景最近接觸銀行項目,發(fā)現(xiàn)在做金額四舍五入的時候并沒有傳統(tǒng)意義上那么簡單,銀行為了盡量縮減在這方面的虧損,有一個單獨的銀行家舍入法。
傳統(tǒng)的四舍五入運算Math.round是在原來的數(shù)字的基礎(chǔ)上+0.5然后向下取整。
銀行家舍入法舍去位的數(shù)值小于5時,直接舍去。
舍去位的數(shù)值大于5時,進(jìn)位后舍去。
當(dāng)舍去位的數(shù)值等于5時,若5后面還有其他非0數(shù)值,則進(jìn)位后舍去,若5后面是0時,則根據(jù)5前一位數(shù)的奇偶性來判斷,奇數(shù)進(jìn)位,偶數(shù)舍去。
Java支持的四舍五入方式參數(shù)1、ROUND_UP:遠(yuǎn)離零方向舍入。
向絕對值最大的方向舍入,只要舍棄位非0即進(jìn)位。
2、ROUND_DOWN:趨向零方向舍入。
向絕對值最小的方向輸入,所有的位都要舍棄,不存在進(jìn)位情況。
3、ROUND_CEILING:向正無窮方向舍入。
向正最大方向靠攏。
若是正數(shù),舍入行為類似于ROUND_UP,若為負(fù)數(shù),舍入行為類似于ROUND_DOWN。
Math.round()方法就是使用的此模式。
4、ROUND_FLOOR:向負(fù)無窮方向舍入。
向負(fù)無窮方向靠攏。
若是正數(shù),舍入行為類似于ROUND_DOWN;若為負(fù)數(shù),舍入行為類似于ROUND_UP。
5、HALF_UP:最近數(shù)字舍入(5進(jìn))。
這是我們最經(jīng)典的四舍五入。
6、HALF_DOWN:最近數(shù)字舍入(5舍)。
貴陽電腦培訓(xùn)http://www.kmbdqn.cn/建議在這里5是要舍棄的。
7、HAIL_EVEN:銀行家舍入法。
java中小數(shù)怎么四舍五入?
按照你的要求為不確定保留幾位小數(shù)的字符串做四舍五入的Java程序如下
import java.math.BigDecimal;
public class A {
public static void main(String[] args) {
String s="0.00000999999997";
//四舍五入,length是小數(shù)位數(shù)
int length=s.substring(s.indexOf(".")+1).length();
String s1=String.format("%."+(length-1)+"f",new BigDecimal(s));
//去尾部0
BigDecimal bd=new BigDecimal(s1).stripTrailingZeros();
System.out.println(bd.toPlainString());
}
}
Java幾種常見的四舍五入的方法
下面給你介紹3種常見的四舍五入:
// 方式一:BigDecimal方式
double f = 3.1315;
BigDecimal b = new BigDecimal(new Double(f).toString);
double f1 = b.tScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
注意:這里一定不要直接使用new BigDecimal(double)的構(gòu)造方法,而要使用new BigDecimal(new Double(1.1315).toString())的方式,不然會出現(xiàn)精確問題
// 方式二:DecimalFormat方式
//DecimalFormat默認(rèn)采用了RoundingMode.HALF_EVEN這種類型,而且format之后的結(jié)果是一個字符串類型String
DecimalFormat df = new DecimalFormat("#.000");
System.out.println(df.format(new BigDecimal(1.0145)));//1.014
System.out.println(df.format(new BigDecimal(1.1315)));//1.132
// 方式三:
double d = 3.1415926;
String result = String.format("%.2f", d);
// %.2f %. 表示 小數(shù)點前任意位數(shù) 2 表示兩位小數(shù) 格式后的結(jié)果為f 表示浮點型。
java四舍五入的函數(shù)
怎樣用java實現(xiàn)小數(shù)的四舍五入?
java代碼實現(xiàn)四舍五入的方式
本文發(fā)布于:2023-02-28 20:19:00,感謝您對本站的認(rèn)可!
本文鏈接:http://www.newhan.cn/zhishi/a/167766983881385.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。
本文word下載地址:java四舍五入(java四舍五入保留兩位小數(shù)).doc
本文 PDF 下載地址:java四舍五入(java四舍五入保留兩位小數(shù)).pdf
| 留言與評論(共有 0 條評論) |