首頁 Java java教程 BigDecimal是什麼?創建BigDecimal的實例

BigDecimal是什麼?創建BigDecimal的實例

Jun 25, 2017 am 10:40 AM
bigdecimal

float和double類型的主要為了科學計算和工程計算而設計的,它們執行二進制浮點運算,這時為了在廣泛的數值範圍上提供較為精確的近似計算而精心設計的。然而,它們沒有提供完全精確的結果,所以不應該被用來要求精確結果的場合。通常商業計算往往需要BigDecimal來計算精確要求比較高的數值。例如

 

  0.07 + 0.020.58 - 0.421.005 * 10015.1 / 1000
登入後複製

#無論是在任何環境下,都需要將程式碼轉換為二進位機器碼才能讓機器識別,當浮點數直接輸出時,會保持精度,而當浮點數進行計算後,可能會失去精度,這時就需要BigDecimal來進行計算。

1.建立BigDecimal

BigDecimal中有一個以雙精確度浮點數為參數的建構函數,實際上傳入浮點數計算時還是會精確度遺失。

 

 

  =  BigDecimal(1.005=  BigDecimal(100=  BigDecimal("1.005"=  BigDecimal("100"100.49999999999998934185896359849721193313598632812500
100.500
登入後複製

 

 

## 

## 

#但是可以發現傳入字串時得到了精確的結果,還有BigDecimal.valueOf(double val)也可以得到精確地結果,可以看下面BigDecimal.valueOf(double val)的源碼

public static BigDecimal valueOf(double val) {// Reminder: a zero double returns '0.0', so we cannot fastpath// to use the constant ZERO.  This might be important enough to// justify a factory approach, a cache, or a few private// constants, later.return new BigDecimal(Double.toString(val));
    }
登入後複製
此方法先是將參數轉換為String類型,然後再呼叫參數為String類型的建構參數,所以用BigDecimal時,盡量用new BigDecimal(String val) 或BigDecimal .valueof(double val)來保證得到精確的結果

2.compareTo

#BigDecimal比較大小用compareTo()。

 

  0.05).compareTo(BigDecimal.valueOf(0.040.04).compareTo(BigDecimal.valueOf(0.040.03).compareTo(BigDecimal.valueOf(0.04
登入後複製

BigDecimal.compareTo(BigDecimal val)

當BigDecimal比val大時回傳1,

###當BigDecimal小於val時回傳-1,######當BigDecimal等於val時回傳0。 ###### ###

以上是BigDecimal是什麼?創建BigDecimal的實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Java BigDecimal類別應用程式碼解析 Java BigDecimal類別應用程式碼解析 Apr 20, 2023 pm 06:25 PM

一.介紹float和double類型的主要設計目標是為了科學計算和工程計算。他們執行二元浮點運算,這是為了在廣域數值範圍上提供較為精確的快速近似計算而精心設計的。然而,它們沒有提供完全精確的結果,所以不應該被用來要求精確結果的場合。但是,商業計算往往要求結果精確,這時候BigDecimal就派上大用場啦。二.知識點介紹1、概述2、構造方法3、加減乘除運算4、源碼的描述5、總結6、精煉練習三.知識點詳解1、概述為什麼要用BigDecimal?程式碼示範:packagecom.Test;import

BigDecimal如何比較大小 BigDecimal如何比較大小 Dec 06, 2023 pm 01:44 PM

比較大小的方法:1、使用「compareTo()」方法;2、使用「equals()」方法;3、使用「compareTo()」方法的重載版本;4、使用「compareTo()」方法的鏈式調用等。

java BigDecimal的格式化方法怎麼使用 java BigDecimal的格式化方法怎麼使用 May 14, 2023 pm 07:25 PM

1.說明以使用BigDecimal對貨幣和百分比進行格式化為例。首先,建立BigDecimal對象,進行BigDecimal的算術操作後,分別建立貨幣和百分比格式化的引用,最後使用BigDecimal物件作為format()方法的參數,輸出其格式化的貨幣值和百分比。 2.實例NumberFormatcurrency=NumberFormat.getCurrencyInstance();//建立貨幣格式化引用NumberFormatpercent=NumberFormat.getPercentIns

BigDecimal在java的異常如何解決 BigDecimal在java的異常如何解決 Apr 26, 2023 pm 10:49 PM

1.說明除法的時候出現異常。 java.lang.ArithmeticException:Non-terminatingdecimalexpansion;noexactrepresentabledecimalresult透過BigDecimal的divide方法進行除法時當不整除,出現循環小數時,就會拋異常:java.lang.ArithmeticException:Non-terminatingdecimalansion;

java中的BigDecimal怎麼用 java中的BigDecimal怎麼用 Apr 18, 2023 pm 09:46 PM

1.BigDecimal使用scale()表示小數位數。 BigDecimald1=newBigDecimal("987.65");BigDecimald2=newBigDecimal("987.6500");BigDecimald3=newBigDecimal("98765400");System.out.println(d1.sc. out.println(d2.scale());//4Sy

java中BigDecimal有什麼作用 java中BigDecimal有什麼作用 May 05, 2023 pm 05:13 PM

1.說明Java在java.math套件中提供的API類別BigDecimal用於精確計算超過16位元的有效位數。雙精度浮點變數double可以處理16位元的有效數,但在實際應用中,可能需要計算和處理更大或更小的數。 2、實例BigDecimala=newBigDecimal(0.1);System.out.println("avaluesis:"+a);System.out.println("=================== ==");BigDecimalb=

Java使用BigDecimal類別的divide()函數來實現精確的數位除法 Java使用BigDecimal類別的divide()函數來實現精確的數位除法 Jul 25, 2023 pm 01:46 PM

Java使用BigDecimal類別的divide()函數實現精確的數字除法在進行數字計算時,特別是需要保留小數精度的除法運算時,使用浮點數(float或double)會存在精度丟失的問題。為了解決這個問題,Java提供了BigDecimal類,它可以進行高精度的數字運算。 BigDecimal類別是Java提供的一個用來表示高精度數字的類別。它可以精確表示有限小數

Java的大數型BigInteger與BigDecimal類別實例分析 Java的大數型BigInteger與BigDecimal類別實例分析 Apr 27, 2023 pm 10:40 PM

BigInteger類別在Java當中,有許多數字要處理的類,例如Integer類,但是Integer類別它也是有上限的。它的最大值就是到2^31-1.如果我們此時想要表示更大的數,那就用Integer是無法表示的了,所在在Java當中提供了BigInteger類別。 BigInteger類別支援的數字可以說是無限大的,並且支援任意精確度的整數,也就是說他可以準確的表示任意數值而不會產生遺失的。這裡也強調一下,因為傳入的數型是字元型,所以在做運算的時候,不能使用+-*/對應的就是使用它們的方法:add

See all articles