前言
Convert、Parse、TryParse 、(int)三個函數都是將值轉換成整數,但是四者之間各有異同,開發人員可以根據情況選用最合適的。本篇介紹數據類型直接轉換希望對大家有所幫助。
一. 隱式類型轉換和顯示類型轉換
1. 自動類型轉換(隱式類型轉換)
不同類型之前進行計算時,數據類型會往大的數據類型轉換
2. 強制類型轉換(顯示類型轉換)
強制類型轉換往往是從寬大的類型轉換爲小的數據類型
int a = 10;
double b = 20.5;
double c = a +b;//低級轉高級,自動轉換
int d = (int) c;//高級轉低級,強制轉換
二. 使用Parse進行數據類型轉換
方法 | 說明 |
---|---|
int.Parse(string value) | 字符串類型轉換成整數類型(int) |
char.Parse(string value) | 字符串類型轉換成字符類型(char) |
double.Parse(string value) | 字符串類型轉換成單精度浮點類型(double) |
Single.Parse(string value) | 字符串類型轉換成雙精度浮點類型(float) |
注意:
- 該方式是將字符串轉換爲整數類型;
- 如果字符串內容爲空或者null時,則拋出ArgumentNullException異常;
- 如果字符串內容不是數字,則拋出FormatException異常;
- 如果字符串內容所表示數字超出指定的數據類型可表示的範圍,則拋出OverflowException異常。
三. 使用TryParse進行數據類型轉換
方法 | 說明 |
---|---|
int.TryParse(string s, out int result) | 字符串類型轉換成整數類型(int) |
char.TryParse(string s, out char result ) | 字符串類型轉換成字符類型(char) |
double.TryParse(string s, out double result) | 字符串類型轉換成單精度浮點類型(double) |
Single.TryParse(string s, out float result) | 字符串類型轉換成雙精度浮點類型(float) |
Console.Write("請輸入int類型的整數:");
int result = 0;
bool flag = int.TryParse(Console.ReadLine(),out result);
if(flag)
{
Console.WriteLine($"您輸入的數字爲{result}");
}
else
{
Console.WriteLine("輸入錯誤!");
}
注意:
- 該方式是將字符串轉換爲整數類型,但是它不會出現異常。
- 如果轉換成功返回 true,如果轉換失敗返回 false。
- 很明顯,最後一個參數爲輸出值,如果轉換失敗,輸出值爲 0;如果轉換成功,則輸出相應的值。
四. 使用Convert進行數據類型轉換
方法 | 說明 |
---|---|
Convert.ToInt32() | 轉換爲整數類型(int) |
Convert.ToChar() | 轉換爲字符型(char) |
Convert.ToDouble() | 轉換爲雙精度浮點型(double) |
Convert.ToSingle() | 轉換爲單精度浮點型(float) |
Convert.ToString() | 轉換爲字符串類型(string) |
Convert.ToDateTime() | 轉換爲日期類型(datetime) |
注意:
- 如果相兼容的兩個變量,可以使用自動類型轉化或者強制類型轉換.
- 如果兩個變量不兼容,我們就需要用到convert類進行轉換。
- 轉換爲int型數據後進行 了四捨五入的計算。
- 使用Convert進行強制類型轉化也要滿足一個條件;那就是面上要過得去。例如:string num = “123abc”;不能轉換成數值數值型