Java 和Oracle的資料類型

來源:互聯網
上載者:User

標籤:

一、BigDecimal

BigDecimal 由任意精度的整數非標度值 和 32 位的整數標度 (scale) 組成。

如果為零或正數,則標度是小數點後的位元。

如果為負數,則將該數的非標度值乘以 10 的負 scale 次冪。

setScale(int n, roundingMode)方法

直接刪除多餘的小數位,如2.35會變成2.3 setScale(1,BigDecimal.ROUND_DOWN) 
進位處理,2.35變成2.4  setScale(1,BigDecimal.ROUND_UP) 
四捨五入,2.35變成2.4  setScale(1,BigDecimal.ROUND_HALF_UP) 
四捨五入,2.35變成2.3,如果是5則向下舍setScaler(1,BigDecimal.ROUND_HALF_DOWN) 

 

浮點數沒有辦法是用二進位進行精確表示

CPU表示浮點數由兩個部分組成:指數和尾數,這樣的表示方法一般都會失去一定的精確度,有些浮點數運算也會產生一定的誤差

java的float只能用來進行科學計算或工程計算,如果需要精確計算,非要用String來夠造BigDecimal不可

在大多數的商業計算中,一般採用java.math.BigDecimal類來進行精確計算

1  BigDecimal b1 = new BigDecimal(Double.toString(0.48));2  BigDecimal b2 = BigDecimal.valueOf(0.48);

二、char, byte和Byte的區別

char 是字元資料類型 ,是無符號型的,佔2位元組(Unicode碼 ); 大小範圍 是0--65535; 可以表示一個整數,不能表示負數

char是一個16位二進位的Unicode字元,JAVA用char來表示一個字元 

byte 是位元組資料類型 ,是有符號型的,佔1 個位元組;大小範圍為-128—127 

1、char可以表中文字元,byte不可以

1 char e1 = ‘中‘, e2 = ‘國‘;2 byte f = (byte) ‘中‘; // 必須強制轉換否則報錯3 System.out.println(e1);4 System.out.println(e2);5 System.out.println(f); // 輸出45?

2、char、byte、int對於英文字元,可以相互轉化

1 byte g = ‘b‘; // b對應ASCII是982 char h = (char) g;3 char i = 85; // U對應ASCII是854 int j = ‘h‘; // h對應ASCII是1045 System.out.println(g);     //986 System.out.println(h);     //b7 System.out.println(i);      //U8 System.out.println(j);      //104

 

 

 


Java 和Oracle的資料類型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.