C#中的数据类型转换

隐式转换的例子:

using System;

namespace Conversion
{
    class Program
    {
        static void Main(string[] args)
        {
            int numInt = 100;

           
            Type n = numInt.GetType();

           
            double numDouble = numInt;

           
            Type n1 = numDouble.GetType();

           
            Console.WriteLine("numInt value: " + numInt);
            Console.WriteLine("numInt Type: " + n);

            
            Console.WriteLine("numDouble value: " + numDouble);
            Console.WriteLine("numDouble Type: " + n1);
            Console.ReadLine();
        }
    }
}

结果:

 

将int类型变量赋给一个双精度类型变量。在这种情况下,C#编译器自动将int类型值转换为Double。

显式转换的例子:

using System;

namespace Conversion
{
    class Program
    {
        static void Main(string[] args)
        {

            double numDouble = 1.01;


            int numInt = (int)numDouble;


            Console.WriteLine("Original double Value: " + numDouble);


            Console.WriteLine("Converted int Value: " + numInt);
            Console.ReadLine();
        }
    }
}

结果:

 

原始值是1.23,而转换值是1。在这里,一些数据在类型转换过程中丢失。这是因为我们将较大的数据类型double显式转换为较小的int类型。

使用Convert类进行类型转换

方法描述
ToBoolean()将类型转换为布尔值
ToChar()将类型转换为字符类型
ToDouble()将类型转换为双精度类型
ToInt16()将类型转换为16位整型
ToString()将类型转换为字符串

int类型转换为string和double:

using System;

using System;
namespace Conversion
{
    class Program
    {
        static void Main(string[] args)
        {

           
            int num = 100;
            Console.WriteLine("int value: " + num);

           
            string str = Convert.ToString(num);
            Console.WriteLine("string value: " + str);

           
            Double doubleNum = Convert.ToDouble(num);
            Console.WriteLine("Double value: " + doubleNum);

            Console.ReadLine();
        }
    }
}

结果:

 

 数据类型占用字节内存:

数据类型所占字节范围
Byte1 byte(s)0 ~ 255
SByte1 byte(s)-128 ~ 127
Int162 byte(s) -32,768 ~ 32,767
UInt162 byte(s)0 ~ 65,535
Int324 byte(s)-2,147,483,648 ~ 2,147,483,647
UInt324 byte(s)0 ~ 4,294,967,295
Int648 byte(s)-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
UInt648 byte(s)0 ~ 18,446,744,073,709,551,615
Single4 byte(s)-3.4028235E+38 ~ 3.4028235E+38
Double8 byte(s)-1.7976931348623157E+308 ~ 1.7976931348623157E+308
Decimal16 byte(s)-79,228,162,514,264,337,593,543,950,335 ~ 79,228,162,514,264,337,593,543,950,335
Boolean1 byte(s)
Char2 byte(s)
IntPtr8 byte(s)

单位换算:

1字节(Byte)=8位(bit)

1KB( Kilobyte,千字节)=1024B

1MB( Megabyte,兆字节)=1024KB

1GB( Gigabyte,吉字节,千兆)=1024MB

1TB( Trillionbyte,万亿字节,太字节)=1024GB 

1PB( Petabyte,千万亿字节,拍字节)=1024TB 

1EB( Exabyte,百亿亿字节,艾字节)=1024PB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三千思丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值