国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

數(shù)據(jù)類型轉(zhuǎn)化異常問題很難解決?!一文帶你梳理處理方式!

2022-05-16 11:21 作者:千鋒教育  | 我要投稿

我們?cè)陂_發(fā)Java項(xiàng)目時(shí),經(jīng)常會(huì)碰到數(shù)據(jù)類型的轉(zhuǎn)化的情況,而很多初學(xué)者或經(jīng)驗(yàn)不夠的程序員,經(jīng)常會(huì)在進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換時(shí)遇到異常。數(shù)據(jù)類型轉(zhuǎn)換異常雖然是看似簡單的錯(cuò)誤,但帶來的后果卻是不可估量的。所以今天千鋒老謝就來給大家講一下數(shù)據(jù)類型轉(zhuǎn)化過程中產(chǎn)生的問題該如何解決,以及其他需要注意的地方。

一、顯式類型轉(zhuǎn)換產(chǎn)生的異常

首先我們來看下面這個(gè)具體的需求,范某某因?yàn)橥刀惵┒惐涣P款8.83億,如果程序這么寫:

如果我們直接這樣進(jìn)行簡單的數(shù)據(jù)類型轉(zhuǎn)化,那范某某可就高興了,因?yàn)樗幌伦泳涂梢怨?jié)省0.83億!0.83億,這可是8300萬啊,多么龐大的數(shù)字,一下子就省出來了!

所以這種數(shù)據(jù)類型轉(zhuǎn)化雖然不會(huì)出現(xiàn)代碼錯(cuò)誤,但肯定是無法滿足業(yè)務(wù)需求的,因?yàn)檫@在浮點(diǎn)數(shù)轉(zhuǎn)化整數(shù)的過程中會(huì)自動(dòng)舍去小數(shù),造成數(shù)據(jù)失真!

二、隱式類型提升產(chǎn)生的異常

除了上述這種直接數(shù)據(jù)類型轉(zhuǎn)化的操作會(huì)導(dǎo)致數(shù)據(jù)精度丟失之外,下面這種計(jì)算也可能會(huì)讓數(shù)據(jù)出現(xiàn)錯(cuò)誤情況。

在我們平時(shí)的印象中,int類型和double類型進(jìn)行計(jì)算,結(jié)果應(yīng)該為double類型數(shù)據(jù),這是不能夠使用int類型接收計(jì)算結(jié)果的。

但如果我們使用自增符號(hào)(+=)卻可以通過編譯,并且會(huì)去除小數(shù)得到一個(gè)整數(shù),這也是我們平時(shí)可能容易忽略的地方,這里也可能會(huì)造成嚴(yán)重的后果的一個(gè)小細(xì)節(jié)。

三、數(shù)據(jù)范圍越界產(chǎn)生的異常

另外我們可能也會(huì)碰到下面這樣的異常情況:第一行不報(bào)錯(cuò),第三行報(bào)錯(cuò)

之所以會(huì)產(chǎn)生上述情況,我們首先要看看兩個(gè)值分別是多少,l變量值為10億,ll變量值為100億,這是第一點(diǎn)。

第二點(diǎn),兩個(gè)變量的數(shù)據(jù)類型都是long,但定義的值后面沒有加L或者l,所以此時(shí)這兩個(gè)變量默認(rèn)的數(shù)據(jù)類型就是int。

而我們知道,最后int數(shù)據(jù)類型的最大范圍為21億多,第三行100億明顯超出了int的長度范圍,所以第一行數(shù)據(jù)可以正常的進(jìn)行數(shù)據(jù)類型轉(zhuǎn)化,但第三行卻報(bào)錯(cuò)了。

老謝通過上面的3個(gè)案例,為大家分析了數(shù)據(jù)類型轉(zhuǎn)換時(shí)可能會(huì)導(dǎo)致異常的幾種常見情況,現(xiàn)在你知道該如何避免這些異常問題了嗎?請(qǐng)持續(xù)關(guān)注我們的文章,這里會(huì)為你帶來更多精彩的java學(xué)習(xí)內(nèi)容哦!


數(shù)據(jù)類型轉(zhuǎn)化異常問題很難解決?!一文帶你梳理處理方式!的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
马龙县| 巫溪县| 克拉玛依市| 肇源县| 伊川县| 堆龙德庆县| 灵寿县| 馆陶县| 呼伦贝尔市| 石门县| 开江县| 邵东县| 彭山县| 江口县| 绿春县| 德钦县| 资中县| 连平县| 思茅市| 平果县| 邵东县| 怀化市| 德化县| 龙井市| 河北省| 搜索| 金昌市| 荔波县| 崇左市| 丰城市| 鄂尔多斯市| 通化市| 泽普县| 红安县| 大洼县| 泾川县| 连江县| 延长县| 彭泽县| 黄龙县| 固镇县|