zoukankan      html  css  js  c++  java
  • C#中(int)、Conver.Toint32()、int.Parse()三种类型转换方式的区别与联系--C#基础知识

    自己刚学习C#,总结了一些知识,想分享给大家。毕竟刚学习这门语言,学得不深,如果哪里有错误,请帮忙指出一下哈,谢谢!

    1、(int)可用于单精度、双精度等其他数值类型的转换(到整型int),不能用于转换string类型,例如:

    1)这里用(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);
    }
    }

    2)下面例子是转换单精度类型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();
    }
    }
    }

    3)使用(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。

    1)字符串为"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();
    }
    }
    }

    2)使用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();
    }
    }
    }

     文章系属个人原创,请尊重原创,转载请注明出处!

     文章难免会有错误,还望各位多多海涵,另外希望技术专家们多多指出不足之处,兄弟得以改进!

  • 相关阅读:
    Linux下安装Blender
    自我复制的3D打印机
    ODOO v10.0 自动生成财务凭证的科目设置
    初识Odoo的辅助核算
    Odoo9以后的社区版本和企业版功能上的区别
    06: linux中find查找命令总结
    02: shell中的if、case、for等语句
    01: shell基本使用
    05: 配置yum源
    04: linux基础总结-centos6.5
  • 原文地址:https://www.cnblogs.com/qikeyishu/p/7497581.html
Copyright © 2011-2022 走看看