国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

拯救你丟失的精度——BigInteger和BigDecimal類(入門)

TerryCai / 3573人閱讀

摘要:返回的是是一個整數(shù)的最小值。筆記這個構(gòu)造函數(shù)的結(jié)果可能有些不可預(yù)測。這是因?yàn)椴荒芟窕蛘咦鳛槿魏斡邢揲L度的二進(jìn)制分?jǐn)?shù)精確地表示。當(dāng)必須用作源為,注意,此構(gòu)造提供了一個精確的轉(zhuǎn)換它不會將轉(zhuǎn)換為使用方法,然后使用構(gòu)造函數(shù)相同的結(jié)果。

第三階段 JAVA常見對象的學(xué)習(xí) BigInteger和BigDecimal類 BigInteger類 (一) 構(gòu)造方法:
//針對超過整數(shù)范圍的運(yùn)算(整數(shù)最大值:2147483647)
BigInteger(String val)  
(二) 常用方法:
//加
public?BigInteger?add(BigInteger?val)
//減
public?BigInteger?subtract(BigInteger?val)
//乘
public?BigInteger?multiply(BigInteger?val)
//除
public?BigInteger?divide(BigInteger?val)
//返回商和余數(shù)的數(shù)組
public?BigInteger[]?divideAndRemainder(BigInteger?val)    
import java.math.BigInteger;

public class BigIntegerDemo {
    public static void main(String[] args) {
        BigInteger bi1 = new BigInteger("100");
        BigInteger bi2 = new BigInteger("50");

        BigInteger[] bis = bi1.divideAndRemainder(bi2);
        System.out.println("商:" + bis[0]);
        System.out.println("余數(shù):" + bis[1]);
    }
}

//運(yùn)行結(jié)果
商:2
余數(shù):0
BigInteger類
由于在運(yùn)算的時候,float類型和double很容易丟失精度(下例為演示),所以為了能精確的表示、計(jì)算浮點(diǎn)數(shù),Java提供了BigDecimal
public class BigDecimalDemo {
    public static void main(String[] args) {
        System.out.println(0.09 + 0.01);
        System.out.println(1.0 - 0.32);
        System.out.println(1.026 * 100);
        System.out.println(1.502 / 100);
        System.out.println(1.0 - 0.17);
    }
}

//運(yùn)行結(jié)果
0.09999999999999999
0.6799999999999999
102.60000000000001
0.01502
0.83
(一) 構(gòu)造方法:

我們來帖一組說明

BigDecimal
public BigDecimal(double val)

將double轉(zhuǎn)換為BigDecimal ,這是double的二進(jìn)制浮點(diǎn)值的精確十進(jìn)制表示。

返回的BigDecimal是(10scale × val)是一個整數(shù)的最小值。

筆記:

這個構(gòu)造函數(shù)的結(jié)果可能有些不可預(yù)測。 可以假設(shè)在Java中寫入new BigDecimal(0.1)創(chuàng)建一個BigDecimal ,它完全等于0.1(非標(biāo)尺值為1,比例為1),但實(shí)際上等于0.1000000000000000055511151231257827021181583404541015625。 這是因?yàn)?.1不能像double (或者作為任何有限長度的二進(jìn)制分?jǐn)?shù))精確地表示。 因此,正在被傳遞給構(gòu)造的值不是正好等于0.1,雖然表面上。

該String構(gòu)造,在另一方面,是完全可以預(yù)測的:寫new BigDecimal("0.1")創(chuàng)建BigDecimal這正好等于0.1,正如人們所期望的那樣。 因此, 一般建議使用String constructor優(yōu)先于此。

當(dāng)double必須用作源為BigDecimal ,注意,此構(gòu)造提供了一個精確的轉(zhuǎn)換; 它不會將double轉(zhuǎn)換為String使用Double.toString(double)方法,然后使用BigDecimal(String)構(gòu)造函數(shù)相同的結(jié)果。 要獲得該結(jié)果,請使用static valueOf(double)方法。

參數(shù)

val - double值轉(zhuǎn)換為 BigDecimal 。

異常

NumberFormatException - 如果 val 是無限或NaN。

構(gòu)造方法:建議使用 → BigDecimal(String s)

(二) 常用方法:
import java.math.BigDecimal;

public class BigDecimalDemo2 {
    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal("0.09");
        BigDecimal bd2 = new BigDecimal("0.01");
        System.out.println("加:" + bd1.add(bd2));

        BigDecimal bd3 = new BigDecimal("1.0");
        BigDecimal bd4 = new BigDecimal("0.32");
        System.out.println("減:" + bd3.subtract(bd4));

        BigDecimal bd5 = new BigDecimal("1.026");
        BigDecimal bd6 = new BigDecimal("100");
        System.out.println("乘:" + bd5.multiply(bd6));

        BigDecimal bd7 = new BigDecimal("1.502");
        BigDecimal bd8 = new BigDecimal("100");
        System.out.println("除:" + bd7.divide(bd8));
    }
}

//運(yùn)行結(jié)果
加:0.10
減:0.68
乘:102.600
除:0.01502
結(jié)尾:

如果內(nèi)容中有什么不足,或者錯誤的地方,歡迎大家給我留言提出意見, 蟹蟹大家 !^_^

如果能幫到你的話,那就來關(guān)注我吧!(系列文章均會在公眾號第一時間更新)

在這里的我們素不相識,卻都在為了自己的夢而努力 ?

一個堅(jiān)持推送原創(chuàng)Java技術(shù)的公眾號:理想二旬不止

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/77796.html

相關(guān)文章

  • Java編程基礎(chǔ)15——正則表達(dá)式&常用工具

    摘要:正則表達(dá)式的概述和簡單使用正則表達(dá)式是指一個用來描述或者匹配一系列符合某個語法規(guī)則的字符串的單個字符串。例如,在表達(dá)式中,存在四個這樣的組組零始終代表整個表達(dá)式。 1_正則表達(dá)式的概述和簡單使用 A:正則表達(dá)式 是指一個用來描述或者匹配一系列符合某個語法規(guī)則的字符串的單個字符串。其實(shí)就是一種規(guī)則。有自己特殊的應(yīng)用。 作用:比如注冊郵箱,郵箱有用戶名和密碼,一般會對其限制長度,這個...

    miqt 評論0 收藏0
  • java學(xué)習(xí)(五) —— 常用API概述

    摘要:成員方法類概述用于產(chǎn)生隨機(jī)數(shù)成員方法正則表達(dá)式相關(guān)方法判斷功能分割功能替換功能獲取功能和類的使用類概述包含一些有用的類字段和方法。注意它不能被實(shí)例化,因?yàn)榇祟悩?gòu)造器是私有的成員方法類類概述表示特定的瞬間,精確到毫秒。 前言 我們都知道,JDK包含了JRE,而JRE中也提供了各種功能的java類,現(xiàn)在我們就對這些類有個簡單了解,然后靈活運(yùn)用。 常用類:Object類/Scanner類,...

    Tecode 評論0 收藏0
  • 1、基本型包裝 2、System 3、Math 4、Arrays 5、大數(shù)據(jù)運(yùn)算

    摘要:基本數(shù)據(jù)類型對象包裝類概述基本數(shù)據(jù)類型對象包裝類概述基本類型包裝類的產(chǎn)生在實(shí)際程序使用中,程序界面上用戶輸入的數(shù)據(jù)都是以字符串類型進(jìn)行存儲的。 01基本數(shù)據(jù)類型對象包裝類概述 *A:基本數(shù)據(jù)類型對象包裝類概述 *a.基本類型包裝類的產(chǎn)生 在實(shí)際程序使用中,程序界面上用戶輸入的數(shù)據(jù)都是以字符串類型進(jìn)行存儲的。而程序開發(fā)中,我們需要把字符串?dāng)?shù)據(jù),根據(jù)需求轉(zhuǎn)換成指定的基...

    余學(xué)文 評論0 收藏0
  • 180615-精度計(jì)算BigDecimal

    摘要:文章鏈接精度計(jì)算精度計(jì)算目前接觸的業(yè)務(wù)中,對數(shù)據(jù)的精度要求比較高,因此不再使用基本的,改為用進(jìn)行存儲和相關(guān)的計(jì)算,端午前的這一篇博文,則簡單的介紹下的使用姿勢,早點(diǎn)回家早點(diǎn)放假基本使用構(gòu)造方法幾個常見的構(gòu)造方式,將基本類型等,轉(zhuǎn) showImg(https://segmentfault.com/img/remote/1460000015303995); 文章鏈接:https://liu...

    phodal 評論0 收藏0
  • 180706-BigDecimal除法精度問題

    摘要:除法的精度問題在使用的除法時,遇到一個鬼畜的問題,本以為的精度計(jì)算,結(jié)果使用返回,當(dāng)然最終發(fā)現(xiàn)還是自己的使用姿勢不對導(dǎo)致的,因此記錄一下,避免后面重蹈覆轍問題拋出在使用做高精度的除法時,一不注意遇到了一個小問題,如下上面的輸出是什么 showImg(https://segmentfault.com/img/remote/1460000015555232); BigDecimal除法的精...

    imccl 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<