强制类型转换方法

自动转换条件

  • 两种类型必须是值类型(整型和浮点类型)。
  • 目标类型必须大于要转换的类型,例如double大于int。
  • 这个过程是程序运行中,编译器自动完成的,我们无需干预。

基本类型的转换

  static void test()
        {
            double a = 100.5;
            int b = 12;
            //double res = a + b;
            //Console.WriteLine($"转换后的结果{res}");

            int res = (int)a + b;   //这种语法的转换,一般是值类型之间可以用,会丢失精度。
            Console.WriteLine($"转换后的结果{res}");

            Console.WriteLine("---------------------------");
            //对于Object类型的强制转换。object是引用类型(非数值)
            object val = 120.5;
            int valB = 8;
            int result = (int)(double)val + b;
            Console.WriteLine($"{result}");
        }

Parse方法的类型转换

  static void ttVal()
        {
            //由字符串---->数值
            //只有"有效的"字符类型,才能转换成对应的值类型。有效的:也就是说字符串内容必须符合目标类型。
            double a = double.Parse("200.5");
            float b = float.Parse("20.36");
            int c = int.Parse("500");

            //int d = int.Parse("20.56"); //这种方式会出错,因为"20.56"不是int的有效表示开式。
            int d = (int)double.Parse("20.56");  //必须先中转一下。
            double e = double.Parse("300"); //这种可以,因为"300"是小(int)转大(double)的形式。
            Console.WriteLine($"{a}, {b},{c}");
            //总结方法: 目标类型  变量=目标类型.Parse("字符串的有效表示")

            //由数值 -----> 字符串
            string s1 = a.ToString();
            string s2 = b.ToString();
            Console.WriteLine($"{s1};{s2}");

        }

强制类型转换适合各种类型之间的转换

static void ttval2()
        {
            //强制类型转换,万能转换Convert
            double a = Convert.ToDouble("125.25");
            float b = Convert.ToSingle("20.36");
            int c = Convert.ToInt32("252");

            DateTime dt = Convert.ToDateTime("2022-10-1");
            int d = Convert.ToInt32(a);

            c = (int)Convert.ToDouble("500.5");
            //注:同样要求,字符串或者要转换的类型,必须是目标类型 的有效表示形式。
        }

 

转载请注明出处:  https://www.cntworld.cn
智能工控 » 强制类型转换方法

发表回复

提供最优质的资源集合

立即查看 了解详情