日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java.math.BigDecimal()的用法

發布時間:2025/7/25 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java.math.BigDecimal()的用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java中簡單的浮點數類型float和double是不能進行運算的,不光Java,很多語言都是這樣。

我們運行下面程序你將會看到

public class TestMathDecimal {public static void main(String [] args){System.out.println(0.05+0.01);System.out.println(1.0 - 0.42);System.out.println(4.015 * 100);System.out.println(123.3 / 100);} }

沒錯,結果確實是:

0.060000000000000005
0.5800000000000001
401.49999999999994
1.2329999999999999

我們的第一反應是做四舍五入。Math中的roound是不能夠設置保留幾位小數的。

Math.round(4.015 * 100)的結果為401,而不是我們期望的402。

因此如果我們要進行精確的四舍五入,不能利用簡單類型做任何運算。

java.text.DecimalFormat也不能解決這個問題:

System.out.println(new java.text.DecimalFormat("0.00").format(4.015));輸出的是4.02。

BigDecimal

  在商業計算中我們要用java.math.BigDecimal.BigDecimal有四個構造方法,我們不關心BigInteger來構造的那兩個,還有兩個分別是:

BigDecimal(double val)

BigDecimal(String val)

除法運算:

  System.out.println(new BigDecimal(153.5).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP));

  new BigDecimal(100)除數,2精確的位數,BigDecimal.ROUND_HALF_UP:舍入模式

加法運算:

  System.out.println(new BigDecimal("2.005").add(new BigDecimal("0.03")));

減法運算:

  System.out.println(new BigDecimal("2.00").subtract(new BigDecimal("1.10")));

乘法運算:

  System.out.println(new BigDecimal("2.05").multiply(new BigDecimal("10")));

ps:此處可能說的不是很清楚,以后會繼續更新的。

轉載于:https://www.cnblogs.com/lovefeng/p/4678202.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的java.math.BigDecimal()的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。