最近在檢查我們公司某台Server時,發現Windows日志中記錄了很多SystemToNumber的Crash Exception,問題原因為公司的同事Coding時都犯了一個最基本的原則性錯誤,鑒於此,覺得還是有必要再梳理下.Net中三個基本的數值類型(int、float、double),。
Int :在.NET中,int是有符號的32位整型數值 ,無論處理器是32位還是64位,它的.NET框架類型是System.Int32 。
Float:單精度浮點數,32位長度,1位實數符號位(原碼表示),1位指數符號位,7位指數位(此八位為移碼表示)以及23位數據位(補碼表示),在.net中又稱為Single。
Double: 64位長度的雙精度浮點數,1位符號位,11位指數位,52位數據位。
三者的轉換關系:
1. int可以隱式轉換成float和double;
2.float只能強制轉換成int,但是可以隱式轉換成double;
3.double只能強制轉換成float和int。
PS:
注意區分:(1)Convert.ToInt32("56.89") 和 (2)Convert.ToInt(56.89)
(1)的這種寫法會導致拋出FormatException,所以要用(2)這種寫法。