亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java中精確的浮點運算操作示例

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

本文實例講述了Java中精確的浮點運算操作。分享給大家供大家參考,具體如下:

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

如下所例:

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

結(jié)果:

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

為了解決基本數(shù)據(jù)類型浮點數(shù)不能進行精確計算的問題,Java中專門提供了java.math.BigDecimal類,其提供浮點數(shù)的精確計算功能。與BigInteger類相同,其運算操作均使用方法調(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("相加運算:");
    System.out.println("b1:"+b1);
    System.out.println("b2:"+b2);
    System.out.println("相加值:"+b1.add(b2));
  }
}

輸出值:

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

 BigDecimal abs()
          返回 BigDecimal,其值為此 BigDecimal 的絕對值,其標度為 this.scale()。
 BigDecimal abs(MathContext mc)
          返回其值為此 BigDecimal 絕對值的 BigDecimal(根據(jù)上下文設置進行舍入)。
 BigDecimal add(BigDecimal augend)
          返回一個 BigDecimal,其值為 (this + augend),其標度為 max(this.scale(), augend.scale())。
 BigDecimal add(BigDecimal augend, MathContext mc)
          返回其值為 (this + augend) 的 BigDecimal(根據(jù)上下文設置進行舍入)。
 byte byteValueExact()
          將此 BigDecimal 轉(zhuǎn)換為 byte,以檢查丟失的信息。
 int compareTo(BigDecimal val)
          將此 BigDecimal 與指定的 BigDecimal 比較。
 BigDecimal divide(BigDecimal divisor)
          返回一個 BigDecimal,其值為 (this / divisor),其首選標度為 (this.scale() - divisor.scale());如果無法表示準確的商值(因為它有無窮的十進制擴展),則拋出 ArithmeticException。
 BigDecimal divide(BigDecimal divisor, int roundingMode)
          返回一個 BigDecimal,其值為 (this / divisor),其標度為 this.scale()。
 BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
          返回一個 BigDecimal,其值為 (this / divisor),其標度為指定標度。
 BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode)
          返回一個 BigDecimal,其值為 (this / divisor),其標度為指定標度。
 BigDecimal divide(BigDecimal divisor, MathContext mc)
          返回其值為 (this / divisor) 的 BigDecimal(根據(jù)上下文設置進行舍入)。
 BigDecimal divide(BigDecimal divisor, RoundingMode roundingMode)
          返回一個 BigDecimal,其值為 (this / divisor),其標度為 this.scale()。
 BigDecimal[] divideAndRemainder(BigDecimal divisor)
          返回由兩個元素組成的 BigDecimal 數(shù)組,該數(shù)組包含 divideToIntegralValue 的結(jié)果,后跟對兩個操作數(shù)計算所得到的 remainder。
 BigDecimal[] divideAndRemainder(BigDecimal divisor, MathContext mc)
          返回由兩個元素組成的 BigDecimal 數(shù)組,該數(shù)組包含 divideToIntegralValue 的結(jié)果,后跟根據(jù)上下文設置對兩個操作數(shù)進行舍入計算所得到的 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)
          返回一個 BigDecimal,它等效于將該值的小數(shù)點向左移動 n 位。
 BigDecimal movePointRight(int n)
          返回一個 BigDecimal,它等效于將該值的小數(shù)點向右移動 n 位。
 BigDecimal multiply(BigDecimal multiplicand)
          返回一個 BigDecimal,其值為 (this × multiplicand),其標度為 (this.scale() + multiplicand.scale())。
 BigDecimal multiply(BigDecimal multiplicand, MathContext mc)
          返回其值為 (this × multiplicand) 的 BigDecimal(根據(jù)上下文設置進行舍入)。
 BigDecimal negate()
          返回 BigDecimal,其值為 (-this),其標度為 this.scale()。
 BigDecimal negate(MathContext mc)
          返回其值為 (-this) 的 BigDecimal(根據(jù)上下文設置進行舍入)。
 BigDecimal plus()
          返回 BigDecimal,其值為 (+this),其標度為 this.scale()。
 BigDecimal plus(MathContext mc)
          返回其值為 (+this) 的 BigDecimal(根據(jù)上下文設置進行舍入)。
 BigDecimal pow(int n)
          返回其值為 (thisn) 的 BigDecimal,準確計算該冪,使其具有無限精度。
 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ù)上下文設置進行舍入)。
 BigDecimal round(MathContext mc)
          返回根據(jù) MathContext 設置進行舍入后的 BigDecimal。
 int scale()
          返回此 BigDecimal 的標度。
 BigDecimal scaleByPowerOfTen(int n)
          返回其數(shù)值等于 (this * 10n) 的 BigDecimal。
 BigDecimal setScale(int newScale)
          返回一個 BigDecimal,其標度為指定值,其值在數(shù)值上等于此 BigDecimal 的值。
 BigDecimal setScale(int newScale, int roundingMode)
          返回一個 BigDecimal,其標度為指定值,其非標度值通過此 BigDecimal 的非標度值乘以或除以十的適當次冪來確定,以維護其總值。
 BigDecimal setScale(int newScale, RoundingMode roundingMode)
          返回 BigDecimal,其標度為指定值,其非標度值通過此 BigDecimal 的非標度值乘以或除以十的適當次冪來確定,以維護其總值。
 short shortValueExact()
          將此 BigDecimal 轉(zhuǎn)換為 short,以檢查丟失的信息。
 int signum()
          返回此 BigDecimal 的正負號函數(shù)。
 BigDecimal stripTrailingZeros()
          返回數(shù)值上等于此小數(shù),但從該表示形式移除所有尾部零的 BigDecimal。
 BigDecimal subtract(BigDecimal subtrahend)
          返回一個 BigDecimal,其值為 (this - subtrahend),其標度為 max(this.scale(), subtrahend.scale())。
 BigDecimal subtract(BigDecimal subtrahend, MathContext mc)
          返回其值為 (this - subtrahend) 的 BigDecimal(根據(jù)上下文設置進行舍入)。
 BigInteger toBigInteger()
          將此 BigDecimal 轉(zhuǎn)換為 BigInteger。
 BigInteger toBigIntegerExact()
          將此 BigDecimal 轉(zhuǎn)換為 BigInteger,以檢查丟失的信息。
 String toEngineeringString()
          返回此 BigDecimal 的字符串表示形式,需要指數(shù)時,則使用工程計數(shù)法。
 String toPlainString()
          返回不帶指數(shù)字段的此 BigDecimal 的字符串表示形式。
 String toString()
          返回此 BigDecimal 的字符串表示形式,如果需要指數(shù),則使用科學記數(shù)法。
 BigDecimal ulp()
          返回此 BigDecimal 的 ulp(最后一位的單位)的大小。
 BigInteger unscaledValue()
          返回其值為此 BigDecimal 的非標度值 的 BigInteger。
static BigDecimal valueOf(double val)
          使用 Double.toString(double) 方法提供的 double 規(guī)范的字符串表示形式將 double 轉(zhuǎn)換為 BigDecimal。
static BigDecimal valueOf(long val)
          將 long 值轉(zhuǎn)換為具有零標度的 BigDecimal。
static BigDecimal valueOf(long unscaledVal, int scale)
          將 long 非標度值和 int 標度轉(zhuǎn)換為 BigDecimal。

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

希望本文所述對大家java程序設計有所幫助。

相關文章

  • Java中判斷對象是否為空的不同方法

    Java中判斷對象是否為空的不同方法

    在Java編程中,經(jīng)常會遇到判斷對象是否為空的情況,本篇將深入探討Java中判斷對象是否為空的不同方法,包括使用條件判斷、使用Java 8的Optional類、使用Apache Commons Lang庫等,通過詳細的解釋和舉例說明,幫助讀者正確處理空對象問題,需要的朋友一起看看吧
    2023-11-11
  • Kafka單節(jié)點偽分布式集群搭建實現(xiàn)過程詳解

    Kafka單節(jié)點偽分布式集群搭建實現(xiàn)過程詳解

    這篇文章主要介紹了Kafka單節(jié)點偽分布式集群搭建實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • 解決mybatis plus 一對多分頁查詢問題

    解決mybatis plus 一對多分頁查詢問題

    這篇文章主要介紹了解決mybatis plus 一對多分頁查詢問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • SpringBoot實現(xiàn)WebSocket即時通訊的示例代碼

    SpringBoot實現(xiàn)WebSocket即時通訊的示例代碼

    本文主要介紹了SpringBoot實現(xiàn)WebSocket即時通訊的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • java,android,MD5加密算法的實現(xiàn)代碼(16位,32位)

    java,android,MD5加密算法的實現(xiàn)代碼(16位,32位)

    下面小編就為大家?guī)硪黄猨ava,android,MD5加密算法的實現(xiàn)代碼(16位,32位)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • 解決IDEA2020.1版本不兼容Lombok的問題

    解決IDEA2020.1版本不兼容Lombok的問題

    這篇文章主要介紹了解決IDEA2020.1版本不兼容Lombok的問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • Java Swing實現(xiàn)掃雷小游戲

    Java Swing實現(xiàn)掃雷小游戲

    這篇文章主要為大家詳細介紹了Java Swing實現(xiàn)掃雷小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 深入理解java內(nèi)置鎖(synchronized)和顯式鎖(ReentrantLock)

    深入理解java內(nèi)置鎖(synchronized)和顯式鎖(ReentrantLock)

    這篇文章主要介紹了Java多線程之內(nèi)置鎖(synchronized)和顯式鎖(ReentrantLock)的深入理解新的和用法,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • IDEA提示內(nèi)存不足 low memory的完美解決方法(親測好用)

    IDEA提示內(nèi)存不足 low memory的完美解決方法(親測好用)

    這篇文章主要介紹了IDEA提示內(nèi)存不足 low memory的完美解決方法(親測好用),這里以IDEA2022版本為例,在IDE中 幫助(help)–>change memory setting(改變內(nèi)存設置),具體設置辦法文中給大家詳細講解,需要的朋友可以參考下
    2023-01-01
  • 教你怎么用Java開發(fā)掃雷游戲

    教你怎么用Java開發(fā)掃雷游戲

    我們那時候上機經(jīng)常玩掃雷,試想如果我當年可以用 java 寫個掃雷出來,那場面不用我多說了吧,大家讓開,我要開始裝逼了,之前用JavaScript寫過了一個掃雷,這次我用java再寫了一遍,權當是復習咯.文中有非常詳細的代碼示例,需要的朋友可以參考下
    2021-05-05

最新評論