BigDecimal 加減乘除運算

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

java.math.BigDecimal。BigDecimal一共有4個夠造方法,讓我先來看看其中的兩種用法:

第一種:BigDecimal(double val)
Translates a double into a BigDecimal.

第二種:BigDecimal(String val)
Translates the String repre sentation of a BigDecimal into a BigDecimal.

使用BigDecimal要用String來夠造,要做一個加法運算,需要先將兩個浮點數轉為String,然后夠造成BigDecimal,在其中一個上調用add方法,傳入另一個作為參數,然后把運算的結果(BigDecimal)再轉換為浮點數。

public static double add(double v1,double v2)
public static double sub(double v1,double v2)
public static double mul(double v1,double v2)
public static double div(double v1,double v2)
public static double div(double v1,double v2,int scale)public static double round(double v,int scale)

?


import?java.math.BigDecimal; ??/**??
*?由于Java的簡單類型不能夠精確的對浮點數進行運算,這個工具類提供精??
*?確的浮點數運算,包括加減乘除和四舍五入。??
*/??public?class?Arith{?//默認除法運算精度???private?static?final?int?DEF_DIV_SCALE?=?10;?//這個類不能實例化???private?Arith(){ ??
} ?/**??
*?提供精確的加法運算。??
*?@param?v1?被加數??
*?@param?v2?加數??
*?@return?兩個參數的和??
*/??
public?static?double?add(double?v1,double?v2){ ??BigDecimal?b1?=?new?BigDecimal(Double.toString(v1)); ??BigDecimal?b2?=?new?BigDecimal(Double.toString(v2)); ??return?b1.add(b2).doubleValue(); ??
} /**??
*?提供精確的減法運算。??
*?@param?v1?被減數??
*?@param?v2?減數??
*?@return?兩個參數的差??
*/??
public?static?double?sub(double?v1,double?v2){ ??BigDecimal?b1?=?new?BigDecimal(Double.toString(v1)); ??BigDecimal?b2?=?new?BigDecimal(Double.toString(v2)); ??return?b1.subtract(b2).doubleValue(); ??
} ?/**??
*?提供精確的乘法運算。??
*?@param?v1?被乘數??
*?@param?v2?乘數??
*?@return?兩個參數的積??
*/??
public?static?double?mul(double?v1,double?v2){ ??BigDecimal?b1?=?new?BigDecimal(Double.toString(v1)); ??BigDecimal?b2?=?new?BigDecimal(Double.toString(v2)); ??return?b1.multiply(b2).doubleValue(); ??
} ??/**??
*?提供(相對)精確的除法運算,當發生除不盡的情況時,精確到??
*?小數點以后10位,以后的數字四舍五入。??
*?@param?v1?被除數??
*?@param?v2?除數??
*?@return?兩個參數的商??
*/??
public?static?double?div(double?v1,double?v2){ ??return?div(v1,v2,DEF_DIV_SCALE); ??
} ??/**??
*?提供(相對)精確的除法運算。當發生除不盡的情況時,由scale參數指??
*?定精度,以后的數字四舍五入。??
*?@param?v1?被除數??
*?@param?v2?除數??
*?@param?scale?表示表示需要精確到小數點以后幾位。??
*?@return?兩個參數的商??
*/??
public?static?double?div(double?v1,double?v2,int?scale){ ??if(scale<0){ ??throw?new?IllegalArgumentException( ??"The?scale?must?be?a?positive?integer?or?zero"); ??} ?BigDecimal?b1?=?new?BigDecimal(Double.toString(v1)); ??BigDecimal?b2?=?new?BigDecimal(Double.toString(v2)); ??return?b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue(); ??
} ?/**??
*?提供精確的小數位四舍五入處理。??
*?@param?v?需要四舍五入的數字??
*?@param?scale?小數點后保留幾位??
*?@return?四舍五入后的結果??
*/??
public?static?double?round(double?v,int?scale){ ??if(scale<0){ ?                    throw?new?IllegalArgumentException("The?scale?must?be?a?positive?integer?or?zero"); ?                } ??BigDecimal?b?=?new?BigDecimal(Double.toString(v)); ??BigDecimal?one?=?new?BigDecimal("1"); ??return?b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue(); ??
} }; 

?見:http://blog.csdn.net/huiwenjie168/article/details/6998140

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452176.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452176.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452176.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

主碼 超碼 候選碼

碼是數據系統中的基本概念。所謂碼就是能唯一標識實體的屬性&#xff0c;他是整個實體集的性質&#xff0c;而不是單個實體的性質。它包括超碼&#xff0c;候選碼&#xff0c;主碼。   超碼是一個或多個屬性的集合&#xff0c;這些屬性可以讓我們在一個實體集中唯一地標識一…

學成在線--18.新增課程(課程分類查詢)

文章目錄一.需求分析二.課程分類查詢介紹三.數據結構四.數據格式五.數據模型六.Api接口七.服務器端1.Dao1&#xff09;定義mapper2&#xff09;定義mapper映射文件2.Service3.Controller八.接口測試一.需求分析 用戶操作流程如下&#xff1a; 1、用戶進入“我的課程”頁面&…

給程序員們的工資報價提醒

在薪水上討價還價的方式有很多種&#xff0c;我要說的這一點也許并不是最好的。然而&#xff0c;如果使用的得當&#xff0c;會收到很好的效果。如果你正在跟一家公司接觸(沒有經過職業中介)&#xff0c;而且事情看來很順利&#xff0c;進度很快&#xff0c;你要保持這種面試的…

POI 方式-excle 表格導出實現-java-poi

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 效果&#xff1a; jsp 頁面 用的Bootstrap &#xff1a; <li class"dropdown"> <a href"javascript:void(0)…

02-css的選擇器

css的選擇器&#xff1a;1.基本選擇器 2.高級選擇器 基本選擇器包含&#xff1a; 1.標簽選擇器標簽選擇器可以選中所有的標簽元素&#xff0c;比如div&#xff0c;ul&#xff0c;li &#xff0c;p等等&#xff0c;不管標簽藏的多深&#xff0c;都能選中&#xff0c;選中的是所有…

iphoneX樣式兼容

// 1.viewport meta 標簽增加屬性viewport-fitcover // 2.body元素增加樣式 body { padding-bottom: constant(safe-area-inset-bottom); padding-bottom: env(safe-area-inset-bottom); } // 3.如有fixed底部的元素&#xff0c;也增加上面樣式 xxx { padding-bottom: constant…

學成在線--19.新增課程(數據字典)

文章目錄一.介紹二.數據模型三.數據模型類四.字典查詢API接口五.服務器端1.Dao2.Service3.Controller一.介紹 在新增課程界面需要選擇課程等級、課程狀態等&#xff0c;這些信息統一采用數據字典管理的方式。 本項目對一些業務的分類配置信息&#xff0c;比如&#xff1a;課程…

范式簡介

范式是符合某一種級別的關系模式的集合。關系數據庫中的關系必須滿足一定的要求。滿足不同程度要求的為不同范式。范式的種類&#xff1a; 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) BC范式(BCNF) 第四范式(4NF) 第五范式(5NF) 一個低一級范式的關系模式&#xff0c;通過模…

程序員的進化

對于很多同學來說&#xff0c;他們對程序員的職業生涯非常關注。而這本質上是一個進化的過程。我們將如何進化&#xff1f;在每個進化階段我們應該如何提高自己&#xff1f;下面的文章根據我自己的切身經歷和閱讀過的書&#xff0c;為程序員每個階段的進化提供了不同的學習思路…

【樹形dp】vijos1144小胖守皇宮

細節很精妙 描述 huyichen世子事件后&#xff0c;xuzhenyi成了皇上特聘的御前一品侍衛。 皇宮以午門為起點&#xff0c;直到后宮嬪妃們的寢宮&#xff0c;呈一棵樹的形狀&#xff1b;某些宮殿間可以互相望見。大內保衛森嚴&#xff0c;三步一崗&#xff0c;五步一哨&#xff0c…

手機號碼歸屬地及運營商查詢

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL;public class NewMobile {public stati…

redhat6.5手動配置網絡

2、手動設置ip地址如果虛擬機不能自動獲取IP&#xff0c;只能手動配置&#xff0c;配置方法如下&#xff1a;輸入命令#vi /etc/sysconfig/network-scripts/ifcfg-eth0 [編輯網卡的配置文件]輸入上述命令后回車&#xff0c;打開配置文件&#xff0c;使用方向鍵移動光標到最后一行…

學成在線--20.新增課程(最后完善)

文章目錄一.效果展示二.服務端1.Api接口2.Dao3.Service4.Controller三.前端1.頁面完善1&#xff09;創建course_add.vue頁面2&#xff09;course_add.vue頁面路由3&#xff09;course_list.vue中添加鏈接2.查詢數據字典1&#xff09;視圖中代碼2&#xff09;定義Api方法3&#…

http協議工作流程

用戶單機鼠標后所發生的事件過程如下&#xff1a; &#xff08;1&#xff09;瀏覽器分析鏈接所指向頁面的URL。 &#xff08;2&#xff09;瀏覽器向DNS服務器請求解析URL的IP地址。 &#xff08;3&#xff09;域名系統DNS解析出URL對應的IP地址。 &#xff08;4&#xff09…

html里面表格問題

表格問題匯總&#xff1a; 現代網站中表格的用武之地已經很少了&#xff0c;但是一些框架&#xff0c;如bootstorp還是會用到的&#xff0c;所以還是需要了解掌握。本隨筆只涉及開發過程中遇到的表格問題&#xff0c;不做其他拓展。 1、caption代表的是表格元素的標題。至于標題…

利用Underscore求數組的交集、并集和差集

1 數組交集函數——intersection 數組的交集是指包含多個數組中的共同元素的一個數組&#xff0c;求數組的交集就是找出給定數組中的共有元素。 下面實現一個求兩個數組交集的函數。 判斷數組是夠包含指定值&#xff0c;使用Array.indexOf就可以。所以我們可以遍歷第一個參數數…

RT-Thread簡介

RT-Thread簡介 RT-Thread是一款完全由國內團隊開發維護的嵌入式實時操作系統&#xff08;RTOS&#xff09;&#xff0c;具有完全的自主知識產權。 經過16個年頭的沉淀&#xff0c;伴隨著物聯網的興起&#xff0c;它正演變成一個功能強大、組件豐富的物聯網操作系統。 RT-Thre…

調用第三方API ,實現手機號碼歸屬地及運營商查詢

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 運行結果&#xff1a; 中國電信 西雙版納 西雙版納,中國電信 代碼&#xff1a; import java.io.BufferedReader; import java.io.I…

學成在線--21.課程信息修改

文章目錄一.需求分析二.課程管理導航頁面1.定義course_manage.vue為課程管理頁面2.創建各個信息管理頁面3.創建路由三.服務端1.Api接口1&#xff09;根據課程ID查詢課程信息2&#xff09;修改課程信息2.Dao3.Service4.Controller四.前端1. 完成course_baseinfo.vue頁面2.API方法…

HTTP協議特點

&#xff08;一&#xff09;HTTP協議是無狀態的。也就是說&#xff0c;同一個客戶第二次訪問同一個服務器上的頁面時&#xff0c;服務器的響應與第一次被訪問時相同。服務器不記得訪問過得這個用戶&#xff0c;也不記得為這個客戶服務過多少次。 &#xff08;二&#xff09;HT…