int、float、double In .Net之相互轉換


最近在檢查我們公司某台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)這種寫法。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM