最近在檢查我們公司某臺(tái)Server時(shí),發(fā)現(xiàn)Windows日志中記錄了很多SystemToNumber的Crash Exception,問(wèn)題原因?yàn)楣镜耐翪oding時(shí)都犯了一個(gè)最基本的原則性錯(cuò)誤,鑒于此,覺(jué)得還是有必要再梳理下.Net中三個(gè)基本的數(shù)值類(lèi)型(int、float、double),。
Int:在.NET中,int是有符號(hào)的32位整型數(shù)值,無(wú)論處理器是32位還是64位,它的.NET框架類(lèi)型是System.Int32。
Float:?jiǎn)尉雀↑c(diǎn)數(shù),32位長(zhǎng)度,1位實(shí)數(shù)符號(hào)位(原碼表示),1位指數(shù)符號(hào)位,7位指數(shù)位(此八位為移碼表示)以及23位數(shù)據(jù)位(補(bǔ)碼表示),在.net中又稱(chēng)為Single。
Double:64位長(zhǎng)度的雙精度浮點(diǎn)數(shù),1位符號(hào)位,11位指數(shù)位,52位數(shù)據(jù)位。
三者的轉(zhuǎn)換關(guān)系:
1. int可以隱式轉(zhuǎn)換成float和double;
2.float只能強(qiáng)制轉(zhuǎn)換成int,但是可以隱式轉(zhuǎn)換成double;
3.double只能強(qiáng)制轉(zhuǎn)換成float和int。
PS:
注意區(qū)分:(1)Convert.ToInt32("56.89") 和 (2)Convert.ToInt(56.89)
(1)的這種寫(xiě)法會(huì)導(dǎo)致拋出FormatException,所以要用(2)這種寫(xiě)法。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注