C# 类型转换有关的小问题

案例:

using System;
namespace TypeConversion
{
    class Exchange
    {
        static void Main(String[] args)
        {
            string s = null;
            int a;
            bool ii = int.TryParse(s,out a);
            Console.WriteLine(ii + "数值是" + a);
            int b = Convert.ToInt32(s);
            Console.WriteLine(b);
            int c = int.Parse(s);
            Console.WriteLine(c);
        }
    }
}

在这里插入图片描述
解释:
string->int有几种方法:
一、强制转换

double d = 5673.74;
            int i;

            // 强制转换 double 为 int
            i = (int)d;

直接去掉小数

二、Convert.ToInt32(s);/Convert.ToInt16(s);/Convert.ToInt64(s);
Convert.ToInt32(null) 会返回 0 而不会产生任何异常

三、int.Parse(s)
int.Parse(null) 则会产生异常

四、int.TryParse(s,out a);
它不会出现异常,最后一个参数result是输出值,如果转换成功则输出相应的值,转换失败则输出0。

string s = null;
int a;
 bool ii = int.TryParse(s,out a);

double->int

using System;
namespace TypeConversion
{
    class Exchange
    {
        static void Main(String[] args)
        {
            double s = 1.23;
            int c = Convert.ToInt32(s);
            Console.WriteLine(c);

            s = 1.68;
             c = Convert.ToInt32(s);
            Console.WriteLine(c);
        }
    }
}

在这里插入图片描述

发布了156 篇原创文章 · 获赞 16 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44001521/article/details/104494412