1. 程式人生 > >C#中(int)、Conver.Toint32()、int.Parse()三種類型轉換方式的區別與聯系--C#基礎知識

C#中(int)、Conver.Toint32()、int.Parse()三種類型轉換方式的區別與聯系--C#基礎知識

實例 文章 小數位 其他 返回 system roman static logs

自己也是剛學習C#程序設計語言,總結了一點知識點,想分享給大家。畢竟剛學習這門語言,學得不深,哪裏如果有錯誤,請幫個忙指出一下哈,謝謝!

1、(int)可用於單精度、雙精度等其他數值類型的轉換(到整型int),不能用於轉換string類型,例如:

  這裏用(int)轉換string是不可以的,系統會報錯,程序是不能運行。

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 表達式
{
    class
Program { static void Main(string[] args) { string myString="520"; int myint; myint = (int)myString; Console.WriteLine(myint); } } }

  下面例子是轉換單精度類型float,這是可以的

using System;
using System.Collections.Generic;
using System.Linq; using System.Text; using System.Threading.Tasks; namespace 表達式 { class Program { static void Main(string[] args) { int x; float y=1.2f; x = (int)y; Console.WriteLine(x); Console.ReadKey(); } } }

  使用(int):Double或Float被轉換成int類型,小數部分不進行四舍五入,結果是取整的

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 表達式
{
    class Program
    {
        static void Main(string[] args)
        {
            //double轉換為int,使用Convert.ToInt32()
            double myInt=1.6;
            string myString = "123.45";
            //string myString="abcd";
            //string myString = "12345";
            int intResult;
            string stringResult;
            intResult = (int)myInt;
            Console.WriteLine(intResult);
            Console.Read();
        }
    }
}

2、Convert.ToInt32() 可以轉換字符串類型,但是字符串裏的內容必須是"123456"這種,即:裏面是整型數值類型的。不能是"123.456"(可認為裏面是小數的)或者"abcdef"。也可轉換值類型,如Double和Float。

  字符串為"123.45",系統會報錯:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 表達式
{
    class Program
    {
        static void Main(string[] args)
        {
            int myInt;
            string myString = "123.45";
            //string myString="abcd";
            //string myString = "12345";
            int intResult;
            string stringResult;
            intResult = Convert.ToInt32(myString);
            Console.WriteLine(intResult);
            Console.Read();
        }
    }
}

  使用Convert.ToInt32():double或float被轉換為int,小數部分可以是四舍五入的。規則是:整數位如果是:0-4:直接舍掉小數位。若數值為5.6,規則是:整數位如果為5,要返回臨近偶數()結果是6 整數位為6-9是,都要進位。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 表達式
{
    class Program
    {
        static void Main(string[] args)
        {
            //double轉換為int,使用Convert.ToInt32()
            double myInt=1.6;
            string myString = "123.45";
            //string myString="abcd";
            //string myString = "12345";
            int intResult;
            string stringResult;
            intResult =Convert.ToInt32(myInt);
            Console.WriteLine(intResult);
            Console.Read();
        }
    }
}
//輸出結果為2

3、int.Parse()在只能轉換string類型,不能是其他,例如double到int這些數值類型是不可以的。另外,在轉換string時,和Convert.ToInt32() 同,字符串裏的內容必須是"123456"這種,即:裏面是整型數值類型的。不能是"123.456"(可認為裏面是小數的)或者"abcdef"。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 表達式
{
    class Program
    {
        static void Main(string[] args)
        {
            int myInt;
            //string myString = "123.45";
            //string myString="abcd";
           string myString = "12345";
            int intResult;
            string stringResult;
            intResult = int.Parse(myString);
            Console.WriteLine(intResult);
            Console.Read();
        }
    }
}

  double-->int不行

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 表達式
{
    class Program
    {
        static void Main(string[] args)
        {
            //double轉換為int,使用Convert.ToInt32()
            double myInt=1.6;
            string myString = "123.45";
            //string myString="abcd";
            //string myString = "12345";
            int intResult;
            string stringResult;
            intResult = int.Parse(myInt);
            Console.WriteLine(intResult);
            Console.Read();
        }
    }
}

4、Conver.ToInt32()可以將string=null轉換為0,而(int)、int.Parse()不能對空字符串進行轉換,實例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 表達式
{
    class Program
    {
        static void Main(string[] args)
        {
            String myString = null;
           String resultString;
            int myInt;
           // myInt = (int)myString;//不能轉換null
        myInt = Convert.ToInt32(myString);//將null轉換為0
           // myInt = int.Parse(myString);//不能轉換null
            Console.WriteLine(myInt);
            Console.Read();

        }
    }
}

5、int類型轉換為string 類型,使用強制類型轉換符,可用Convert.ToString()去轉換

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 表達式
{
    class Program
    {
        static void Main(string[] args)
        {
            //強制括號轉換只能轉換數值類型的
            int myInt = 3;
            string stringResult;
            stringResult=(string)myInt;
            Console.Read();
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 表達式
{
    class Program
    {
        static void Main(string[] args)
        {
            //強制括號轉換只能轉換數值類型的
            int myInt = 333;
            string stringResult;
            //stringResult = Convert.ToString(myInt);
            stringResult = myInt.ToString();
            Console.WriteLine(stringResult);
            Console.Read();
        }
    }
}

文章系屬個人原創,請尊重原創,轉載請註明出處!

文章難免會有錯誤,還望各位多多海涵,另外希望技術專家們多多指出不足之處,兄弟得以改進!

C#中(int)、Conver.Toint32()、int.Parse()三種類型轉換方式的區別與聯系--C#基礎知識