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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java基础-BigDecimal类常用方法介绍

發布時間:2023/11/29 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java基础-BigDecimal类常用方法介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

              java基礎-BigDecimal類常用方法介紹

                                  作者:尹正杰

版權聲明:原創作品,謝絕轉載!否則將追究法律責任。

?

?

?

?

一.BigDecimal類概述

?  我們知道浮點數的計算結果是未知的。原因是計算機二進制中,表示浮點數不精確造成的。這個時候你需要一個超級大型的浮點數據,并且提供高精度的浮點運算,也就是我們要說的BigDecimal。

  不可變的、任意精度的有符號十進制數。BigDecimal 由任意精度的整數非標度值 和 32 位的整數標度 (scale) 組成。如果為零或正數,則標度是小數點后的位數。如果為負數,則將該數的非標度值乘以 10 的負 scale 次冪。因此,BigDecimal 表示的數值是 (unscaledValue × 10-scale)。BigDecimal 類提供以下操作:算術、標度操作、舍入、比較、哈希算法和格式轉換。toString() 方法提供 BigDecimal 的規范表示形式。

  BigDecimal 類使用戶能完全控制舍入行為。如果未指定舍入模式,并且無法表示準確結果,則拋出一個異常;否則,通過向該操作提供適當的 MathContext 對象,可以對已選擇的精度和舍入模式執行計算。在任何情況下,可以為舍入控制提供八種舍入模式。使用此類(例如,ROUND_HALF_UP)中的整數字段來表示舍入模式已過時;應改為使用 RoundingMode enum(例如,RoundingMode.HALF_UP)的枚舉值。??

  

二.BigDecimal類實現加法,減法和乘法的案例展示

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 package cn.org.yinzhengjie.demo; 8 9 import java.math.BigDecimal; 10 11 public class BigDecimalDemo { 12 public static void main(String[] args) { 13 function(); 14 } 15 16 public static void function() { 17 BigDecimal a = new BigDecimal("0.009"); 18 BigDecimal b = new BigDecimal("0.001"); 19 //計算a+b的和,調用add方法 20 BigDecimal sum = a.add(b); 21 System.out.println(sum); 22 23 BigDecimal x = new BigDecimal("1.1"); 24 BigDecimal y = new BigDecimal("0.28"); 25 BigDecimal sub = x.subtract(y); 26 System.out.println(sub); 27 28 BigDecimal m = new BigDecimal("3.14"); 29 BigDecimal n = new BigDecimal("100"); 30 BigDecimal mul = m.multiply(n); 31 System.out.println(mul); 32 } 33 } 34 35 36 37 /* 38 以上代碼執行結果如下: 39 0.010 40 0.82 41 314.00 42 */

?

三.BIgDecimal類實現除法

?

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 package cn.org.yinzhengjie.demo; 8 9 import java.math.BigDecimal; 10 11 public class BigDecimalDemo { 12 public static void main(String[] args) { 13 function(); 14 } 15 16 public static void function() { 17 BigDecimal a = new BigDecimal("9.8"); 18 BigDecimal b = new BigDecimal("3"); 19 //計算a/b的商,調用divied方法, 20 // BigDecimal div = a.divide(b); //如果除不盡的話會拋出異常:java.lang.ArithmeticException。 21 // BigDecimal div = a.divide(b,3,BigDecimal.ROUND_UP); //保留三位小數,向上加1 22 // BigDecimal div = a.divide(b,3,BigDecimal.ROUND_DOWN); //保留三位小數,直接舍去 23 // BigDecimal div = a.divide(b,3,BigDecimal.ROUND_HALF_UP); //保留三位小數,當ROUND_HALF_UP>=0.5時,和ROUND_UP功能相同(即向上加1)。 24 BigDecimal div = a.divide(b,3,BigDecimal.ROUND_HALF_DOWN); //保留三位小數,如果舍棄部分>0.5時,則舍入行為與ROUN_UP相同(向上加1),否則舍入行為與ROUND_DOWN相同。 25 System.out.println(div); 26 } 27 } 28 29 30 31 /* 32 以上代碼執行結果如下: 33 3.267 34 */

?

總結

以上是生活随笔為你收集整理的java基础-BigDecimal类常用方法介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

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