java強(qiáng)制類型轉(zhuǎn)換規(guī)則 java中為什么int轉(zhuǎn)char要強(qiáng)制類型轉(zhuǎn)換?
java中為什么int轉(zhuǎn)char要強(qiáng)制類型轉(zhuǎn)換?1. 將整數(shù)強(qiáng)制類型轉(zhuǎn)換為字符類型,JVM將把數(shù)字當(dāng)作字符的ASCII編碼。例如,字符“()的ASCII編碼為40,因此將整數(shù)40強(qiáng)制類型轉(zhuǎn)換為字符類型
java中為什么int轉(zhuǎn)char要強(qiáng)制類型轉(zhuǎn)換?
1. 將整數(shù)強(qiáng)制類型轉(zhuǎn)換為字符類型,JVM將把數(shù)字當(dāng)作字符的ASCII編碼。
例如,字符“()的ASCII編碼為40,因此將整數(shù)40強(qiáng)制類型轉(zhuǎn)換為字符類型將導(dǎo)致字符“()。
Int a=40
char c=(char)a
輸出:(
2)String.valueOf值()到字符串類型;
然后toCharArray街()到字符類型。
int a=4
字符串str=String.valueOf值(a)
字符[]數(shù)組=toCharArray街()
對(duì)于(int i=0 i<數(shù)組長度我)
{系統(tǒng)打?。〝?shù)組[i])]}
3。加48,因?yàn)锳SCII碼48到57是字符“
int a=4
char b=(char)(a) 它們之間的主要區(qū)別如下:
01。內(nèi)存中的字節(jié)數(shù)不同
單精度浮點(diǎn)數(shù)占用內(nèi)存4字節(jié)
雙精度浮點(diǎn)數(shù)占用內(nèi)存8字節(jié)
02。有效位數(shù)不同
單精度浮點(diǎn)數(shù)占8位
雙精度浮點(diǎn)數(shù)占16位
03取值范圍
單精度浮點(diǎn)數(shù)范圍:-3.40e38~3.40e38
雙精度浮點(diǎn)數(shù)范圍:-1.79e308~-1.79e38308
04. 程序的處理速度是不同的
一般來說,CPU處理單精度浮點(diǎn)數(shù)的速度比處理雙精度浮點(diǎn)數(shù)的速度快
如果不聲明,默認(rèn)的十進(jìn)制數(shù)是double類型,所以如果要使用float,必須強(qiáng)制它
例如:float a=1.3將編譯并報(bào)告一個(gè)錯(cuò)誤,正確的書寫是float a=(float)1.3或float a=1.3f(f或f可以不區(qū)分大小寫)
注意:float是8位有效數(shù)字,第7位將被舍入
面試問題:
1。3*0.1==0.3在Java中返回什么?對(duì)還是錯(cuò)?
False,因?yàn)楦↑c(diǎn)數(shù)不能精確表示,它將失去精度。
2. float f=3.4在Java中是否正確?
不正確。3.4是一個(gè)雙數(shù)。將double賦值給float是向下的轉(zhuǎn)換,會(huì)導(dǎo)致精度損失。因此,您需要強(qiáng)制轉(zhuǎn)換float f=(float)3.4或?qū)懭雈loat f=3.4f。