国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java進行數(shù)字計算 BigDecimal計算(加減乘除)

這篇具有很好參考價值的文章主要介紹了Java進行數(shù)字計算 BigDecimal計算(加減乘除)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一.前言

Double只能處理16位有效數(shù)精度,在某些情況下精度對其需求是不夠的,所以就有了BigDecimal。因為BigDecimal的精度范圍的范圍大,所以在問我們的開發(fā)業(yè)務(wù)中對精度要求高的屬性,就需要BigDecimal來進行存儲計算,防止精度丟失。這里我主要介紹一下BigDecimal的加,減,乘,除。四種基礎(chǔ)計算。

二.內(nèi)容

首先準備兩個BigDecimal類型的數(shù)

// new第一個參數(shù)

BigDecimal num1 = new BigDecimal(20.5555555555);

// new第二個參數(shù)

BigDecimal num2 = new BigDecimal(10.5555555554);

精度類 MathContext:

MathContext可以自己定義保留的有效數(shù)字位數(shù):

MathContext mathContext = new MathContext(2);

其中2是指有效數(shù)字位數(shù)。MathContext類還有幾個默認參數(shù)分別是:

MathContext.UNLIMITED = 不限制精度 采用四舍五入

MathContext.DECIMAL32 = 7位有效數(shù)字 采用“最接近的”數(shù)字舍入

MathContext.DECIMAL64 = 16位有效數(shù)字 采用“最接近的”數(shù)字舍入

MathContext.DECIMAL128 = 34位有效數(shù)字 采用“最接近的”數(shù)字舍入

1.加法

加法可以使用MathContext來確定有效數(shù)字位數(shù):

// BigDecimal的加法 有兩種 一種無精度入?yún)?一種有精度入?yún)?/p>

// 無精度入?yún)?num1減去num2

BigDecimal addNum1 = num1.add(num2);

// 有精度入?yún)?/p>

// MathContext.UNLIMITED = 不限制精度

// MathContext.DECIMAL32 = 7位有效數(shù)字

// MathContext.DECIMAL64 = 16位有效數(shù)字

// MathContext.DECIMAL128 = 34位有效數(shù)字

MathContext mathContext = new MathContext(2);

BigDecimal addNum2 = num1.add(num2, MathContext.DECIMAL32);

2.減法

減法可以使用MathContext來確定有效數(shù)字位數(shù):

// BigDecimal的減法 有兩種 一種無精度入?yún)?一種有精度入?yún)?/p>

// 無精度入?yún)?/p>

BigDecimal subNum1 = num1.subtract(num2);

// 有精度入?yún)?/p>

BigDecimal subNum2 = num1.subtract(num2,MathContext.DECIMAL32);

3.乘法

乘法可以使用MathContext來確定有效數(shù)字位數(shù)

// BigDecimal的乘法 有兩種 一種無精度入?yún)?一種有精度入?yún)?/p>

// 無精度入?yún)?/p>

BigDecimal mulNum1 = num1.multiply(num2);

// 有精度入?yún)?/p>

BigDecimal mulNum2 = num1.multiply(num2,MathContext.DECIMAL32);

4.除法

其中除法有很多不同入?yún)⒌姆椒?,以下舉例4種:

// BigDecimal的除法

// 無精度入?yún)?/p>

BigDecimal divNum1 = num1.divide(num2);

// 有精度入?yún)?MathContext

BigDecimal divNum2 = num1.divide(num2,MathContext.DECIMAL32);

// 有精度入?yún)?RoundingMode RoundingMode.HALF_UP -> 四舍五入精度

BigDecimal divNum3 = num1.divide(num2, RoundingMode.HALF_UP);

// 有精度入?yún)?RoundingMode RoundingMode.HALF_UP -> 四舍五入精度 scale 表示四舍五入到幾位小數(shù)

BigDecimal divNum4 = num1.divide(num2,2, RoundingMode.HALF_UP)

具體代碼如下:

package useful;

import java.math.BigDecimal;

public class StudyBigDecimal {

public static void main(String[] args) {

String s1 = "1.30";

String s2 = "-0.40";

StudyBigDecimal studyBigDecimal = new StudyBigDecimal();

String r = studyBigDecimal.add(s1, s2);

System.out.println(r);

}

public String add(String s1,String s2) {

BigDecimal b1 = new BigDecimal(String.valueOf(s1));

BigDecimal b2 = new BigDecimal(String.valueOf(s2));

BigDecimal b3 = b1.add(b2);

return b3.toString();

}

public void other(String s1,String s2) {

BigDecimal b1 = new BigDecimal(String.valueOf(s1));

BigDecimal b2 = new BigDecimal(String.valueOf(s2));

BigDecimal b3 = b1.subtract(b2); //減法運算

BigDecimal b4 = b1.multiply(b2); //乘法運算

BigDecimal b5 = b1.divide(b2); //除法運算

}

}

Java BigDecimal轉(zhuǎn)化為字符串(科學(xué)計數(shù)法)的三種方法

介紹BigDecimal的3個toString方法的區(qū)別。

toEngineeringString:有必要時使用工程計數(shù)法。工程記數(shù)法是一種工程計算中經(jīng)常使用的記錄數(shù)字的方法,與科學(xué)計數(shù)法類似,但要求10的冪必須是3的倍數(shù)

toPlainString:不使用任何指數(shù)(永不使用科學(xué)計數(shù)法)

toString:有必要時使用科學(xué)計數(shù)法

import java.math.BigDecimal;

public class Test {

public static void main(String[] args) {

BigDecimal number = new BigDecimal("1E11");

System.out.println(number.toEngineeringString());

System.out.println(number.toPlainString());

System.out.println(number.toString());

}

}

輸出:

100E+9

100000000000

1E+11文章來源地址http://www.zghlxwxcb.cn/news/detail-402090.html

到了這里,關(guān)于Java進行數(shù)字計算 BigDecimal計算(加減乘除)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 小米面試題——不用加減乘除計算兩數(shù)之和

    小米面試題——不用加減乘除計算兩數(shù)之和

    (1) 如果有嵌入式企業(yè)需要招聘校園大使,湖南區(qū)域的日常實習(xí),任何區(qū)域的暑假Linux驅(qū)動實習(xí)崗位,可C站直接私聊,或者郵件:zhangyixu02@gmail.com,此消息至2025年1月1日前均有效 (2)刷B站看到一個面試題,不用加減乘除計算兩數(shù)之和。 (3)當(dāng)時我看到這個題目,第一反應(yīng)

    2024年02月10日
    瀏覽(16)
  • C語言 加減乘除模 的 高精度計算 (超詳細)

    目錄 高精度加法 高精度乘法 高精度減法 ? ? ? ? ?高精度除法 高精度模法 ? 高精度計算 是模擬算法的一種,通過字符串和整型數(shù)組的使用,將加減乘除的豎式運算 模擬 出來,達到計算的目的。其步驟大致分為:一,將字符串?dāng)?shù)據(jù)存到整型數(shù)組中,二,模擬算法,不同的

    2023年04月24日
    瀏覽(16)
  • 用python寫一個支持加減乘除的簡單計算器

    運行該程序后,用戶將首先看到一個菜單,提示用戶可以選擇四種運算之一。用戶輸入選擇后,程序?qū)⒁筝斎雰蓚€數(shù)字,然后進行相應(yīng)的計算并輸出結(jié)果。 請注意,上面的程序僅作為一個簡單的示例。實際的計算器程序可能需要更多的功能和驗證輸入的錯誤等方面的處理。

    2024年02月12日
    瀏覽(17)
  • JAVA中char類型加減乘除運算表達式返回類型

    我們都知道java中,如果char類型和int類型做加減法,那么char類型會被精度提升至int類型然后參與運算,返回的也是int類型的數(shù)據(jù)。 那么如果表達式中參與運算的 均為char類型 ,那么表達式返回的類型是什么呢? 經(jīng)過簡單測試,是 int類型 。 這個問題是在調(diào)用StringBuilder.appen

    2024年02月08日
    瀏覽(26)
  • 【Java版oj】day27不用加減乘除做加法、三角形

    【Java版oj】day27不用加減乘除做加法、三角形

    目錄 ?一、不用加減乘除做加法 (1)原題再現(xiàn) (2)問題分析 (3)完整代碼 ?二、三角形 (1)原題再現(xiàn) (2)問題分析 (3)完整代碼 不用加減乘除做加法__牛客網(wǎng) 寫一個函數(shù),求兩個整數(shù)之和,要求在函數(shù)體內(nèi)不得使用+、-、*、/四則運算符號。 輸入 1,2 輸出 3 輸入 0,0

    2023年04月16日
    瀏覽(24)
  • 加減乘除簡單嗎?不,一點都不,利用位運算實現(xiàn)加減乘除(代碼中不含+ - * /)

    加減乘除簡單嗎?不,一點都不,利用位運算實現(xiàn)加減乘除(代碼中不含+ - * /)

    這也是阿輝開的新專欄,知識將會很零散不成體系,不過絕對干貨滿滿,今天這一篇 利用位運算實現(xiàn)加減乘除 費了阿輝九牛二虎之力,干的很自備飲水??不多bb,進入今天的學(xué)習(xí)吧?。?! 以下int均為有符號int,所求的加減乘除也是int類型的整型數(shù) 嚴謹 ?? 在寫加減乘除之前

    2024年02月03日
    瀏覽(22)
  • 高精度(加減乘除)

    高精度的核心思想就是利用數(shù)組去儲存大數(shù),然后通過模擬手動計算的方式,來進行計算。 主要分三個模塊: 1.讀入數(shù)據(jù)并轉(zhuǎn)換為(int)類型儲存 核心思想:將每個位上的數(shù)字都+起來,如果大于10就進位。 核心代碼如下: 完整代碼及解析如下: 減法核心:只使用大數(shù)減小數(shù)

    2024年02月08日
    瀏覽(24)
  • 不用加減乘除做加法

    不用加減乘除做加法

    寫一個函數(shù),求兩個整數(shù)之和,要求在函數(shù)體內(nèi)不得使用+、-、*、/四則運算符號,本題OJ鏈接 數(shù)據(jù)范圍:兩個數(shù)都滿足 ?10≤n≤1000 進階:空間復(fù)雜度 O(1),時間復(fù)雜度 O(1) 分析 :本題要求不能使用+、-、*、/,所以我們應(yīng)該從二進制的角度去考慮,因為二進制的加法可以通

    2024年02月10日
    瀏覽(26)
  • C語言加減乘除運算

    加減乘除是常見的數(shù)學(xué)運算,C語言當(dāng)然支持,不過,C語言中的運算符號與數(shù)學(xué)中的略有不同,請見下表。 加法 減法 乘法 除法 求余數(shù)(取余) 數(shù)學(xué) + - × ÷ 無 C語言 + - * / % C語言中的加號、減號與數(shù)學(xué)中的一樣,乘號、除號不同;另外C語言還多了一個求余數(shù)的運算符,就是

    2024年02月06日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包