最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中精確的浮點(diǎn)運(yùn)算操作示例

 更新時(shí)間:2017年06月12日 09:45:09   作者:qq7342272  
這篇文章主要介紹了Java中精確的浮點(diǎn)運(yùn)算操作方法,結(jié)合具體實(shí)例形式分析了java浮點(diǎn)數(shù)運(yùn)算的相關(guān)函數(shù)、使用技巧與注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Java中精確的浮點(diǎn)運(yùn)算操作。分享給大家供大家參考,具體如下:

Java中浮點(diǎn)運(yùn)算對(duì)于很多值浮點(diǎn)數(shù)都是采用其能夠表示的離目標(biāo)值最近的數(shù)來表示,這有可能會(huì)在計(jì)算中帶來不易覺察的誤差。

如下所例:

public class ssss {
  public static void main(String[] ages){
    double d1=2.07;
    double d2=1.03;
    System.out.println(d1+d2);
  }
}

結(jié)果:

雖然計(jì)算結(jié)果離精確值誤差很小,但其不是精確的!這在像如金融計(jì)算一樣計(jì)算精確度要求很高的領(lǐng)域是無法接受的,但這是二進(jìn)制本身的問題,而計(jì)算機(jī)普遍采用二進(jìn)制表示,使用基本數(shù)據(jù)類型無法解決。

為了解決基本數(shù)據(jù)類型浮點(diǎn)數(shù)不能進(jìn)行精確計(jì)算的問題,Java中專門提供了java.math.BigDecimal類,其提供浮點(diǎn)數(shù)的精確計(jì)算功能。與BigInteger類相同,其運(yùn)算操作均使用方法調(diào)用完成

demo

public class ssss {
  public static void main(String[] ages){
    BigDecimal b1=new BigDecimal("2.07");
    BigDecimal b2=new BigDecimal("1.03");
    System.out.println("相加運(yùn)算:");
    System.out.println("b1:"+b1);
    System.out.println("b2:"+b2);
    System.out.println("相加值:"+b1.add(b2));
  }
}

輸出值:

其余函數(shù)參造下表

 BigDecimal abs()
          返回 BigDecimal,其值為此 BigDecimal 的絕對(duì)值,其標(biāo)度為 this.scale()。
 BigDecimal abs(MathContext mc)
          返回其值為此 BigDecimal 絕對(duì)值的 BigDecimal(根據(jù)上下文設(shè)置進(jìn)行舍入)。
 BigDecimal add(BigDecimal augend)
          返回一個(gè) BigDecimal,其值為 (this + augend),其標(biāo)度為 max(this.scale(), augend.scale())。
 BigDecimal add(BigDecimal augend, MathContext mc)
          返回其值為 (this + augend) 的 BigDecimal(根據(jù)上下文設(shè)置進(jìn)行舍入)。
 byte byteValueExact()
          將此 BigDecimal 轉(zhuǎn)換為 byte,以檢查丟失的信息。
 int compareTo(BigDecimal val)
          將此 BigDecimal 與指定的 BigDecimal 比較。
 BigDecimal divide(BigDecimal divisor)
          返回一個(gè) BigDecimal,其值為 (this / divisor),其首選標(biāo)度為 (this.scale() - divisor.scale());如果無法表示準(zhǔn)確的商值(因?yàn)樗袩o窮的十進(jìn)制擴(kuò)展),則拋出 ArithmeticException。
 BigDecimal divide(BigDecimal divisor, int roundingMode)
          返回一個(gè) BigDecimal,其值為 (this / divisor),其標(biāo)度為 this.scale()。
 BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
          返回一個(gè) BigDecimal,其值為 (this / divisor),其標(biāo)度為指定標(biāo)度。
 BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode)
          返回一個(gè) BigDecimal,其值為 (this / divisor),其標(biāo)度為指定標(biāo)度。
 BigDecimal divide(BigDecimal divisor, MathContext mc)
          返回其值為 (this / divisor) 的 BigDecimal(根據(jù)上下文設(shè)置進(jìn)行舍入)。
 BigDecimal divide(BigDecimal divisor, RoundingMode roundingMode)
          返回一個(gè) BigDecimal,其值為 (this / divisor),其標(biāo)度為 this.scale()。
 BigDecimal[] divideAndRemainder(BigDecimal divisor)
          返回由兩個(gè)元素組成的 BigDecimal 數(shù)組,該數(shù)組包含 divideToIntegralValue 的結(jié)果,后跟對(duì)兩個(gè)操作數(shù)計(jì)算所得到的 remainder。
 BigDecimal[] divideAndRemainder(BigDecimal divisor, MathContext mc)
          返回由兩個(gè)元素組成的 BigDecimal 數(shù)組,該數(shù)組包含 divideToIntegralValue 的結(jié)果,后跟根據(jù)上下文設(shè)置對(duì)兩個(gè)操作數(shù)進(jìn)行舍入計(jì)算所得到的 remainder 的結(jié)果。
 BigDecimal divideToIntegralValue(BigDecimal divisor)
          返回 BigDecimal,其值為向下舍入所得商值 (this / divisor) 的整數(shù)部分。
 BigDecimal divideToIntegralValue(BigDecimal divisor, MathContext mc)
          返回 BigDecimal,其值為 (this / divisor) 的整數(shù)部分。
 double doubleValue()
          將此 BigDecimal 轉(zhuǎn)換為 double。
 boolean equals(Object x)
          比較此 BigDecimal 與指定的 Object 的相等性。
 float floatValue()
          將此 BigDecimal 轉(zhuǎn)換為 float。
 int hashCode()
          返回此 BigDecimal 的哈希碼。
 int intValue()
          將此 BigDecimal 轉(zhuǎn)換為 int。
 int intValueExact()
          將此 BigDecimal 轉(zhuǎn)換為 int,以檢查丟失的信息。
 long longValue()
          將此 BigDecimal 轉(zhuǎn)換為 long。
 long longValueExact()
          將此 BigDecimal 轉(zhuǎn)換為 long,以檢查丟失的信息。
 BigDecimal max(BigDecimal val)
          返回此 BigDecimal 和 val 的最大值。
 BigDecimal min(BigDecimal val)
          返回此 BigDecimal 和 val 的最小值。
 BigDecimal movePointLeft(int n)
          返回一個(gè) BigDecimal,它等效于將該值的小數(shù)點(diǎn)向左移動(dòng) n 位。
 BigDecimal movePointRight(int n)
          返回一個(gè) BigDecimal,它等效于將該值的小數(shù)點(diǎn)向右移動(dòng) n 位。
 BigDecimal multiply(BigDecimal multiplicand)
          返回一個(gè) BigDecimal,其值為 (this × multiplicand),其標(biāo)度為 (this.scale() + multiplicand.scale())。
 BigDecimal multiply(BigDecimal multiplicand, MathContext mc)
          返回其值為 (this × multiplicand) 的 BigDecimal(根據(jù)上下文設(shè)置進(jìn)行舍入)。
 BigDecimal negate()
          返回 BigDecimal,其值為 (-this),其標(biāo)度為 this.scale()。
 BigDecimal negate(MathContext mc)
          返回其值為 (-this) 的 BigDecimal(根據(jù)上下文設(shè)置進(jìn)行舍入)。
 BigDecimal plus()
          返回 BigDecimal,其值為 (+this),其標(biāo)度為 this.scale()。
 BigDecimal plus(MathContext mc)
          返回其值為 (+this) 的 BigDecimal(根據(jù)上下文設(shè)置進(jìn)行舍入)。
 BigDecimal pow(int n)
          返回其值為 (thisn) 的 BigDecimal,準(zhǔn)確計(jì)算該冪,使其具有無限精度。
 BigDecimal pow(int n, MathContext mc)
          返回其值為 (thisn) 的 BigDecimal。
 int precision()
          返回此 BigDecimal 的精度。
 BigDecimal remainder(BigDecimal divisor)
          返回其值為 (this % divisor) 的 BigDecimal。
 BigDecimal remainder(BigDecimal divisor, MathContext mc)
          返回其值為 (this % divisor) 的 BigDecimal(根據(jù)上下文設(shè)置進(jìn)行舍入)。
 BigDecimal round(MathContext mc)
          返回根據(jù) MathContext 設(shè)置進(jìn)行舍入后的 BigDecimal。
 int scale()
          返回此 BigDecimal 的標(biāo)度。
 BigDecimal scaleByPowerOfTen(int n)
          返回其數(shù)值等于 (this * 10n) 的 BigDecimal。
 BigDecimal setScale(int newScale)
          返回一個(gè) BigDecimal,其標(biāo)度為指定值,其值在數(shù)值上等于此 BigDecimal 的值。
 BigDecimal setScale(int newScale, int roundingMode)
          返回一個(gè) BigDecimal,其標(biāo)度為指定值,其非標(biāo)度值通過此 BigDecimal 的非標(biāo)度值乘以或除以十的適當(dāng)次冪來確定,以維護(hù)其總值。
 BigDecimal setScale(int newScale, RoundingMode roundingMode)
          返回 BigDecimal,其標(biāo)度為指定值,其非標(biāo)度值通過此 BigDecimal 的非標(biāo)度值乘以或除以十的適當(dāng)次冪來確定,以維護(hù)其總值。
 short shortValueExact()
          將此 BigDecimal 轉(zhuǎn)換為 short,以檢查丟失的信息。
 int signum()
          返回此 BigDecimal 的正負(fù)號(hào)函數(shù)。
 BigDecimal stripTrailingZeros()
          返回?cái)?shù)值上等于此小數(shù),但從該表示形式移除所有尾部零的 BigDecimal。
 BigDecimal subtract(BigDecimal subtrahend)
          返回一個(gè) BigDecimal,其值為 (this - subtrahend),其標(biāo)度為 max(this.scale(), subtrahend.scale())。
 BigDecimal subtract(BigDecimal subtrahend, MathContext mc)
          返回其值為 (this - subtrahend) 的 BigDecimal(根據(jù)上下文設(shè)置進(jìn)行舍入)。
 BigInteger toBigInteger()
          將此 BigDecimal 轉(zhuǎn)換為 BigInteger。
 BigInteger toBigIntegerExact()
          將此 BigDecimal 轉(zhuǎn)換為 BigInteger,以檢查丟失的信息。
 String toEngineeringString()
          返回此 BigDecimal 的字符串表示形式,需要指數(shù)時(shí),則使用工程計(jì)數(shù)法。
 String toPlainString()
          返回不帶指數(shù)字段的此 BigDecimal 的字符串表示形式。
 String toString()
          返回此 BigDecimal 的字符串表示形式,如果需要指數(shù),則使用科學(xué)記數(shù)法。
 BigDecimal ulp()
          返回此 BigDecimal 的 ulp(最后一位的單位)的大小。
 BigInteger unscaledValue()
          返回其值為此 BigDecimal 的非標(biāo)度值 的 BigInteger。
static BigDecimal valueOf(double val)
          使用 Double.toString(double) 方法提供的 double 規(guī)范的字符串表示形式將 double 轉(zhuǎn)換為 BigDecimal。
static BigDecimal valueOf(long val)
          將 long 值轉(zhuǎn)換為具有零標(biāo)度的 BigDecimal。
static BigDecimal valueOf(long unscaledVal, int scale)
          將 long 非標(biāo)度值和 int 標(biāo)度轉(zhuǎn)換為 BigDecimal。

更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java字符與字符串操作技巧總結(jié)》、《java日期與時(shí)間操作技巧匯總》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》和《Java緩存操作技巧匯總

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Idea設(shè)置spring boot應(yīng)用配置參數(shù)的兩種方式

    Idea設(shè)置spring boot應(yīng)用配置參數(shù)的兩種方式

    本文通過兩個(gè)方式介紹Idea設(shè)置spring boot應(yīng)用配置參數(shù),一種是配置VM options的參數(shù)時(shí)要以:-DparamName的格式設(shè)置參數(shù),第二種可以參考下本文詳細(xì)設(shè)置,感興趣的朋友跟隨小編一起看看吧
    2023-11-11
  • spring boot--從controller到DAO操作

    spring boot--從controller到DAO操作

    這篇文章主要介紹了spring boot--從controller到DAO操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 淺析JVM垃圾回收的過程

    淺析JVM垃圾回收的過程

    這篇文章主要介紹了JVM垃圾回收的過程,幫助大家更好的理解和學(xué)習(xí)Java中的垃圾回收機(jī)制,感興趣的朋友可以了解下
    2020-09-09
  • 使用spring的IOC解決程序耦合的方法

    使用spring的IOC解決程序耦合的方法

    這篇文章主要介紹了使用spring的IOC解決程序耦合的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 詳解Spring中Lookup注解的使用

    詳解Spring中Lookup注解的使用

    我們知道在spring容器中單獨(dú)的一個(gè)抽象類是不能成為一個(gè)bean的,那么有沒有辦法呢?這個(gè)時(shí)候我們可以使用Lookup注解,下面跟隨小編看下Spring中Lookup注解的使用
    2021-10-10
  • SpringCloud環(huán)境搭建過程之Rest使用小結(jié)

    SpringCloud環(huán)境搭建過程之Rest使用小結(jié)

    這篇文章主要介紹了SpringCloud環(huán)境搭建之Rest使用,本文通過實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • Java編程中應(yīng)用的GUI設(shè)計(jì)基礎(chǔ)

    Java編程中應(yīng)用的GUI設(shè)計(jì)基礎(chǔ)

    這篇文章主要介紹了Java編程中應(yīng)用的GUI設(shè)計(jì)基礎(chǔ),為一些Java開發(fā)CS類型應(yīng)用的基礎(chǔ)概念知識(shí),需要的朋友可以參考下
    2015-10-10
  • Java實(shí)現(xiàn)List反轉(zhuǎn)的方法總結(jié)

    Java實(shí)現(xiàn)List反轉(zhuǎn)的方法總結(jié)

    在Java中,反轉(zhuǎn)一個(gè)List意味著將其元素的順序顛倒,使得第一個(gè)元素變成最后一個(gè),最后一個(gè)元素變成第一個(gè),依此類推,這一操作在處理數(shù)據(jù)集合時(shí)非常有用,所以本文給大家總結(jié)了Java實(shí)現(xiàn)List反轉(zhuǎn)的方法,需要的朋友可以參考下
    2024-04-04
  • Mybatis實(shí)現(xiàn)一對(duì)多映射處理

    Mybatis實(shí)現(xiàn)一對(duì)多映射處理

    MyBatis是一種流行的Java持久化框架,這篇文章主要為大家介紹了Mybatis如何實(shí)現(xiàn)一對(duì)多映射處理,文中的示例代碼講解詳細(xì),需要的可以參考下
    2023-08-08
  • spring中@autowired、@Qualifier、@Primary注解的使用說明

    spring中@autowired、@Qualifier、@Primary注解的使用說明

    這篇文章主要介紹了spring中@autowired、@Qualifier、@Primary注解的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評(píng)論

柏乡县| 江永县| 沐川县| 彭水| 湘阴县| 横峰县| 萨迦县| 滨海县| 聂拉木县| 武定县| 汾西县| 中卫市| 大兴区| 上蔡县| 教育| 洮南市| 新龙县| 枝江市| 壶关县| 沈丘县| 怀柔区| 道真| 报价| 将乐县| 耒阳市| 汉寿县| 云龙县| 徐闻县| 集安市| 古浪县| 定日县| 临湘市| 阳曲县| 云阳县| 合肥市| 靖宇县| 皋兰县| 焦作市| 涞源县| 介休市| 凉山|