摘要:然而表示這個是的鍋,我不背。的表示一共的數字位能存儲個,表示存儲兩位小數。因為默認是保留兩位小數,超過了精度,所以保存近似值。大范圍低精度存儲。很準確,采用科學計數法,損失精度,但能存儲更大范圍的數據,但是精度有損失。
BigDecimal
為什么要使用這個呢?簡單點說就是商業要求精度計算,而double計算出來的結果,往往出人意料。
例子 Double運算結果是個這么個東西,這個是因為計算機中存儲浮點數是通過指數和尾數進行表示的。
說簡單點就是二進制無法準確表示浮點數,所以我們需要用BigDecimal。
BigDecimal運算我們再用BigDecimal進行一遍計算,新建兩個BigDecimal對象,然后調用add方法進行加操作。
什么?結果還是不對。
然而BigDecimal表示這個是Double的鍋,我不背。
因為Double本來的數據就是不準確的,然后我們用一個不準確的數據去構造BigDecimal,肯定不對啊。
String既然Double不準確,我們就用其String類型的構造函數進行初始化。
可下算對了,慶祝一下。
存儲 映射新建實體,測試一下Hibernate為我們映射成了數據庫中的什么屬性。
@Entity public class TestEntity { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private BigDecimal testDecimal; private Double testDouble; }
decimal的19表示一共的數字位能存儲19個,2表示存儲兩位小數。
Java | 數據庫 |
---|---|
BigDecimal | decimal |
Double | double |
存儲12345678.99。
沒什么說的,兩者存儲都沒什么壓力。
小范圍高精度存儲12345678.99999。
因為默認decimal是保留兩位小數,超過了精度,所以保存近似值。
大范圍低精度存儲1234567812345678.99。
decimal很準確,double采用科學計數法,損失精度,但能存儲更大范圍的數據,但是精度有損失。
大范圍高精度存儲1234567812345678.99999。
兩個都不準確,想準確,需要設置decimal為更高的精度。
總結Double因為某些情況下無法精確地表示浮點數,所以我們需要使用BigDecimal進行計算。
Double本來就不準確,再去初始化BigDecimal肯定也不準確,所以建議使用String類型的構造方法。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76758.html
摘要:除法的精度問題在使用的除法時,遇到一個鬼畜的問題,本以為的精度計算,結果使用返回,當然最終發現還是自己的使用姿勢不對導致的,因此記錄一下,避免后面重蹈覆轍問題拋出在使用做高精度的除法時,一不注意遇到了一個小問題,如下上面的輸出是什么 showImg(https://segmentfault.com/img/remote/1460000015555232); BigDecimal除法的精...
摘要:文章鏈接精度計算精度計算目前接觸的業務中,對數據的精度要求比較高,因此不再使用基本的,改為用進行存儲和相關的計算,端午前的這一篇博文,則簡單的介紹下的使用姿勢,早點回家早點放假基本使用構造方法幾個常見的構造方式,將基本類型等,轉 showImg(https://segmentfault.com/img/remote/1460000015303995); 文章鏈接:https://liu...
摘要:返回的是是一個整數的最小值。筆記這個構造函數的結果可能有些不可預測。這是因為不能像或者作為任何有限長度的二進制分數精確地表示。當必須用作源為,注意,此構造提供了一個精確的轉換它不會將轉換為使用方法,然后使用構造函數相同的結果。 第三階段 JAVA常見對象的學習 BigInteger和BigDecimal類 BigInteger類 (一) 構造方法: //針對超過整數范圍的運算(整數最大...
摘要:成員方法類概述用于產生隨機數成員方法正則表達式相關方法判斷功能分割功能替換功能獲取功能和類的使用類概述包含一些有用的類字段和方法。注意它不能被實例化,因為此類構造器是私有的成員方法類類概述表示特定的瞬間,精確到毫秒。 前言 我們都知道,JDK包含了JRE,而JRE中也提供了各種功能的java類,現在我們就對這些類有個簡單了解,然后靈活運用。 常用類:Object類/Scanner類,...
摘要:項目環境用于發送請求測試項目介紹這是一個商城項目,本來想起名叫項目,發現自己并沒有用。也是自己第一篇博客,記錄一下自己的學習過程,希望一方面能多做寫項目鍛煉能力,另一方面也讓自己在做完之后寫寫博客自己總結反思。 1.項目環境 IDEA15 spring4 mybatis3.4 mysql RestLet Client用于發送請求測試 2.項目介紹 這是一個商城項目,本來想起名叫SSM項...
閱讀 1127·2023-04-26 03:02
閱讀 1169·2023-04-25 19:18
閱讀 2589·2021-11-23 09:51
閱讀 2570·2021-11-11 16:55
閱讀 2620·2021-10-21 09:39
閱讀 1699·2021-10-09 09:59
閱讀 1997·2021-09-26 09:55
閱讀 3523·2021-09-26 09:55