Java浮點數運算實現四捨五入和格式化方法總結
method 1
/**
* method 1 值舍入時推薦
*/
String srcBlance = "82.54466";
double rate = 0.01;
double f = Double.parseDouble(srcBlance);
//BigDecimal b = new BigDecimal(f * rate); /** 會有精確性問題*/
BigDecimal b = new BigDecimal(new Double(f * rate).toString()); /** 不會有精確性問題*/
double f1 = b.setScale(0, RoundingMode.HALF_UP).doubleValue();
long extBalance = NumUtils.roundToLong(String.valueOf(f1)); /** roundToLong具備自動將浮點數進行整數化功能*/
System.out.println(extBalance);
method 2
/**
* method 2 值舍入時推薦
*/
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
nf.setRoundingMode(RoundingMode.UP);
System.out.println("method2: "+ nf.format(f));
method 3
/**
* method 3 僅僅格式化 保證精確
*/
DecimalFormat df = new DecimalFormat("#.000");
System.out.println("method3:" + df.format(f));
method 4
/**
* method 4 僅僅格式化 保證精確
*/
System.out.println(String.format("%.2f", f));
RoundingMode
目前java支援7中舍入法:
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舍)。在這裡5是要捨棄的。
7、 HAIL_EVEN:銀行家舍入法。
相關文章
- iOS小數四捨五入總結iOS
- Java中數字的四捨五入和取整Java
- 全面總結 JS 中浮點數運算問題JS
- C語言中四捨五入問題總結C語言
- JavaScript數字四捨五入JavaScript
- C++ 四捨五入與不四捨五入C++
- PHP 保留小數點後有效數字(四捨五入)PHP
- JavaScript 賭運氣的四捨五入JavaScript
- mssql sqlserver 取消數值四捨五入的方法分享SQLServer
- JS四則運算與四捨五入精度問題及解決方案JS
- java中的四捨五入-銀行家舍入法Java
- Day42--四捨五入
- oracle中round()四捨五入Oracle
- 深入理解浮點數的運算
- JavaScript四捨五入的改進JavaScript
- JavaScript toFixed() 四捨五入規則JavaScript
- JavaScript解決浮點數算數運算精度問題JavaScript
- Vue中使用js實現保留小數的奇入偶不入,四捨六入的計算VueJS
- python 使用 round 方法保留 1 位和 2 位小數時沒有進行四捨五入Python
- python中精確的浮點數運算Python
- Python做浮點數(float)運算要小心Python
- 圖解計算機中的數值範圍和浮點運算圖解計算機
- js中浮點數計算常用方法JS
- DELPHI四捨五入問題解決
- 大數相乘(浮點數)實現
- 浮點數的加減乘除運算細節
- 那些關於JS四捨五入的事JS
- java大整數四則運算Java
- 浮點數在計算機底層的表示及運算計算機
- php 處理 浮點數 精度運算 數字處理等PHP
- 複數的四則運算(C語言實現)C語言
- 浮點數之間的比較,基本運算這些究竟是怎麼實現的
- 計組之資料運算:9、浮點數的表示
- java運算子易錯點總結Java
- 四元數的運用與總結
- BigDecimal使用ROUND_HALF_UP進行四捨五入Decimal
- Python浮點數(小數)運算誤差的原因和解決辦法Python
- 刷題系列 - 實現一個指數運算方法,對遞迴次數和運算時間有約束。遞迴