使用double進(jìn)行浮點(diǎn)數(shù)的運(yùn)算
1、double和float類型表達(dá)浮點(diǎn)數(shù)(小數(shù)); 2、double類型的精度值是float類型的兩倍,這正是雙精度的來(lái)由; 3、大多數(shù)使用double表達(dá)浮點(diǎn)數(shù),例如: double pi
1、double和float類型表達(dá)浮點(diǎn)數(shù)(小數(shù)); 2、double類型的精度值是float類型的兩倍,這正是雙精度的來(lái)由; 3、大多數(shù)使用double表達(dá)浮點(diǎn)數(shù),例如:
double pi 3.1415926;
double r 4;
double s pi * r * r;
(s);
浮點(diǎn)數(shù)直接量是double類型
1、浮點(diǎn)數(shù)的直接量有兩種寫法: 1)通常寫法,如:0.1、10、.5; 2)科學(xué)計(jì)數(shù)法,如:1.23E2、1.23e2、1.23E-2,表達(dá)1.23E2表示1.23乘以10的2次方。 2、整型直接量為int型,浮點(diǎn)直接量為double類型,需要用float類型表達(dá)直接量,直接量后需要加“f”或“F”后綴,如:float f 0.1F;
double運(yùn)算會(huì)出現(xiàn)舍入誤差
1、2進(jìn)制系統(tǒng)無(wú)法精確表示1/10,就像十進(jìn)制系統(tǒng)無(wú)法表達(dá)1/3。 2、2進(jìn)制表示10進(jìn)制數(shù)會(huì)有舍入誤差,在要求精確運(yùn)算的業(yè)務(wù)會(huì)導(dǎo)致錯(cuò)誤。 public static void main(String[] args) { double a 1.0; double b 0.9; (a-b); }
char類型
1、char類型是一個(gè)16位無(wú)符號(hào)整數(shù),這個(gè)整數(shù)對(duì)應(yīng)字符編碼; 2、Java字符類型采用Unicode字符集編碼,Unicode是世界通用的定長(zhǎng)字符集,所有字符都是16位。 3、字符直接量采用字符的形式,如:'A',采用16進(jìn)制的表示形式,如:‘u4e2d’;
char型變量賦值
對(duì)char型變量賦值時(shí),采用以下三種方式: 1)、字符直接量,如:‘A’,實(shí)際上變量存儲(chǔ)是該字符的Unicode編碼(無(wú)符號(hào)整數(shù)值),一個(gè)char型變量只能存儲(chǔ)一個(gè)字符。 2)、整型直接量:范圍在0~65535之間的整數(shù),變量中存儲(chǔ)整數(shù)值對(duì)應(yīng)的Unicode字符。如: char c1 66; char c2 'A'; char c3 'u0041';
boolean變量進(jìn)行關(guān)系運(yùn)算
1、boolean適合邏輯運(yùn)算,表示某個(gè)條件是否成立; 2、boolean存儲(chǔ)true或false,true表示條件成立而false表示條件不成立; 3、boolean用來(lái)存儲(chǔ)關(guān)系運(yùn)算的結(jié)果。
public static void main(String[] args) {
int a 10;
boolean result a > 11;
(result); //false
if(result){
("比11大");
} else{
("比11小");
}
}
基本類型間的轉(zhuǎn)換
不同的基本類型直接可以相互轉(zhuǎn)換: 1、自動(dòng)類型轉(zhuǎn)換:從小類型到大類型可以自動(dòng)轉(zhuǎn)換; 2、強(qiáng)制類型轉(zhuǎn)換:從大類型到小類型需要強(qiáng)制轉(zhuǎn)換。
強(qiáng)制類型轉(zhuǎn)換精度喪失和溢出
強(qiáng)制類型轉(zhuǎn)換精度有可能喪失和溢出,請(qǐng)看如下代碼,理解精度喪失和溢出的概念:
public static void main(String[] args) {
double pi 3.1415926535897932384;
float f (float)pi;
(f);
}