摘要:返回的是是一個整數的最小值。筆記這個構造函數的結果可能有些不可預測。這是因為不能像或者作為任何有限長度的二進制分數精確地表示。當必須用作源為,注意,此構造提供了一個精確的轉換它不會將轉換為使用方法,然后使用構造函數相同的結果。
第三階段 JAVA常見對象的學習 BigInteger和BigDecimal類 BigInteger類 (一) 構造方法:
//針對超過整數范圍的運算(整數最大值:2147483647) BigInteger(String val)(二) 常用方法:
//加 public?BigInteger?add(BigInteger?val) //減 public?BigInteger?subtract(BigInteger?val) //乘 public?BigInteger?multiply(BigInteger?val) //除 public?BigInteger?divide(BigInteger?val) //返回商和余數的數組 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("余數:" + bis[1]); } } //運行結果 商:2 余數:0BigInteger類
由于在運算的時候,float類型和double很容易丟失精度(下例為演示),所以為了能精確的表示、計算浮點數,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); } } //運行結果 0.09999999999999999 0.6799999999999999 102.60000000000001 0.01502 0.83(一) 構造方法:
我們來帖一組說明
BigDecimalpublic BigDecimal(double val)將double轉換為BigDecimal ,這是double的二進制浮點值的精確十進制表示。
返回的BigDecimal是(10scale × val)是一個整數的最小值。
筆記:
這個構造函數的結果可能有些不可預測。 可以假設在Java中寫入new BigDecimal(0.1)創建一個BigDecimal ,它完全等于0.1(非標尺值為1,比例為1),但實際上等于0.1000000000000000055511151231257827021181583404541015625。 這是因為0.1不能像double (或者作為任何有限長度的二進制分數)精確地表示。 因此,正在被傳遞給構造的值不是正好等于0.1,雖然表面上。
該String構造,在另一方面,是完全可以預測的:寫new BigDecimal("0.1")創建BigDecimal這正好等于0.1,正如人們所期望的那樣。 因此, 一般建議使用String constructor優先于此。
當double必須用作源為BigDecimal ,注意,此構造提供了一個精確的轉換; 它不會將double轉換為String使用Double.toString(double)方法,然后使用BigDecimal(String)構造函數相同的結果。 要獲得該結果,請使用static valueOf(double)方法。
參數
val - double值轉換為 BigDecimal 。
異常
NumberFormatException - 如果 val 是無限或NaN。
構造方法:建議使用 → 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)); } } //運行結果 加:0.10 減:0.68 乘:102.600 除:0.01502結尾:
如果內容中有什么不足,或者錯誤的地方,歡迎大家給我留言提出意見, 蟹蟹大家 !^_^
如果能幫到你的話,那就來關注我吧!(系列文章均會在公眾號第一時間更新)
在這里的我們素不相識,卻都在為了自己的夢而努力 ?一個堅持推送原創Java技術的公眾號:理想二旬不止
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77796.html
摘要:正則表達式的概述和簡單使用正則表達式是指一個用來描述或者匹配一系列符合某個語法規則的字符串的單個字符串。例如,在表達式中,存在四個這樣的組組零始終代表整個表達式。 1_正則表達式的概述和簡單使用 A:正則表達式 是指一個用來描述或者匹配一系列符合某個語法規則的字符串的單個字符串。其實就是一種規則。有自己特殊的應用。 作用:比如注冊郵箱,郵箱有用戶名和密碼,一般會對其限制長度,這個...
摘要:成員方法類概述用于產生隨機數成員方法正則表達式相關方法判斷功能分割功能替換功能獲取功能和類的使用類概述包含一些有用的類字段和方法。注意它不能被實例化,因為此類構造器是私有的成員方法類類概述表示特定的瞬間,精確到毫秒。 前言 我們都知道,JDK包含了JRE,而JRE中也提供了各種功能的java類,現在我們就對這些類有個簡單了解,然后靈活運用。 常用類:Object類/Scanner類,...
摘要:基本數據類型對象包裝類概述基本數據類型對象包裝類概述基本類型包裝類的產生在實際程序使用中,程序界面上用戶輸入的數據都是以字符串類型進行存儲的。 01基本數據類型對象包裝類概述 *A:基本數據類型對象包裝類概述 *a.基本類型包裝類的產生 在實際程序使用中,程序界面上用戶輸入的數據都是以字符串類型進行存儲的。而程序開發中,我們需要把字符串數據,根據需求轉換成指定的基...
摘要:文章鏈接精度計算精度計算目前接觸的業務中,對數據的精度要求比較高,因此不再使用基本的,改為用進行存儲和相關的計算,端午前的這一篇博文,則簡單的介紹下的使用姿勢,早點回家早點放假基本使用構造方法幾個常見的構造方式,將基本類型等,轉 showImg(https://segmentfault.com/img/remote/1460000015303995); 文章鏈接:https://liu...
摘要:除法的精度問題在使用的除法時,遇到一個鬼畜的問題,本以為的精度計算,結果使用返回,當然最終發現還是自己的使用姿勢不對導致的,因此記錄一下,避免后面重蹈覆轍問題拋出在使用做高精度的除法時,一不注意遇到了一個小問題,如下上面的輸出是什么 showImg(https://segmentfault.com/img/remote/1460000015555232); BigDecimal除法的精...
閱讀 644·2023-04-25 15:49
閱讀 3099·2021-09-22 15:13
閱讀 1235·2021-09-07 10:13
閱讀 3467·2019-08-29 18:34
閱讀 2555·2019-08-29 15:22
閱讀 499·2019-08-27 10:52
閱讀 677·2019-08-26 18:27
閱讀 3009·2019-08-26 13:44