优秀的编程知识分享平台

网站首页 > 技术文章 正文

C#编程零基础到入门学习-C#数字类型(4-5)

nanyue 2024-11-12 11:47:34 技术文章 1 ℃

通常,数字可以分为两种类型:整数类型 和 浮点类型。

整数类型数字是不带小数点的整数。它可以是负数或正数。

浮点类型是具有一个或多个小数点的数字。它可以是负数或正数。

C#根据它们在内存中的大小和存储数字的能力,为整数类型和浮点类型包括不同的数据类型。

下图说明了C#中的数字类型。


整数类型

整数类型数字是带小数点的正或负整数。

C#包括四种用于整数的数据类型:字节,短整数,整数和长整数(byte, short, int, long)。

byte:字节数据类型存储从0到255的数字。它在内存中占据8位。byte关键字是.NET中Byte结构的别名。sbyte与byte相同,但是它可以存储-128到127之间的负数。sbyte关键字是.NET中SByte结构的别名。

byte示例代码:

byte b1 = 255;
byte b2 = -128;// 编译时错误:常量值“ -128”不能转换为“字节”
sbyte sb1 = -128; 
sbyte sb2 = 127; 

Console.WriteLine(Byte.MaxValue);//255
Console.WriteLine(Byte.MinValue);//0
Console.WriteLine(SByte.MaxValue);//127
Console.WriteLine(SByte.MinValue);//-128
//这个代码是会报错误的,刚开始学习的朋友可以在“运行结果”中找答案,自己修改





short:该数据类型是一个有符号整数,可以存储-32,768到32,767之间的数字。它占用16位内存。short关键字是.NET中Int16结构的别名。ushort数据类型是无符号整数。它只能存储0到65535之间的正数。ushort关键字是.NET中UInt16结构的别名。

short示例代码:

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

namespace DataTypeShort
{
    internal class Program
    {
        static void Main(string[] args)
        {
            short s1 = -32768;
            short s2 = 32767;
            short s3 = 35000;//编译时错误:常量值“ 35000”不能转换为“ short”
            ushort us1 = 65535;
            ushort us2 = -32000; //编译时错误:常量值“ -32000”不能转换为“ ushort”
            Console.WriteLine(Int16.MaxValue);//32767
            Console.WriteLine(Int16.MinValue);//-32768
            Console.WriteLine(UInt16.MaxValue);//65535
            Console.WriteLine(UInt16.MinValue);//0
        }
    }
}
//这个代码是会报错误的,刚开始学习的朋友可以在“运行结果”中找答案,自己修改。



int数据类型是32位有符号整数。它可以存储从-2,147,483,648到2,147,483,647的数字。

int关键字是.NET中Int32结构的别名。uint是32位无符号整数。uint关键字是.NET中UInt32结构的别名。它可以存储从0到4,294,967,295的正数。

(可选)在数字后使用U或u后缀将其分配给uint变量。

int示例代码:

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

namespace DataTpyeInt
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int i = -2147483648;
            int j = 2147483647;
            int k = 4294967295; //编译时错误:无法将类型'uint'隐式转换为'int'。
            uint ui1 = 4294967295;
            uint ui2 = -1; //编译时错误:常量值“ -1”不能转换为“ uint”
            Console.WriteLine(Int32.MaxValue);//2147483647最大
            Console.WriteLine(Int32.MinValue);//-2147483648最小
            Console.WriteLine(UInt32.MaxValue);//4294967295最大
            Console.WriteLine(UInt32.MinValue);//0最小
            //报错的都是超出范围的
        }
    }
}
//这个代码是会报错误的,刚开始学习的朋友可以在“运行结果”中找答案,自己修改。


int数据类型也用于十六进制和二进制数。十六进制数字以0x或0X前缀开头。从C#7.2开始,二进制数以0b或0B开头。


long类型是64位有符号整数。它可以存储从-9,223,372,036,854,775,808到9,223,372,036,854,775,807的数字。使用带有数字的l或L后缀将其分配给long类型变量。long关键字是.NET中Int64结构的别名。ulong类型存储从0到18,446,744,073,709,551,615的正数。如果数字后缀为UL,Ul,uL,ul,LU,Lu,lU或lu,则其类型为ulong。uint关键字是.NET中UInt64结构的别名。数字太长不在举反例了。


浮点类型

float数据类型可以存储从3.4ee038到3.4e + 038的分数。它在内存中占用4个字节。float关键字是.NET中Single结构的别名。使用带有文字的 f 或 F 后缀使其成为浮点型。

float示例代码:

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

namespace DateTypeFloat
{
    internal class Program
    {
        static void Main(string[] args)
        {
            float f1 = 123456.5F;
            float f2 = 1.123456f;
            Console.WriteLine(f1);//123456.5
            Console.WriteLine(f2);//1.123456
        }
    }
}

double数据类型可以存储从1.7e?308到1.7e + 308的小数。它在内存中占用8个字节。double关键字是.NET中Double结构的别名。使用带文字的 d 或 D 后缀使其成为双精度型

double示例代码:

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

namespace DataTypeDouble
{
    internal class Program
    {
        static void Main(string[] args)
        {
            double d1 = 12345678912345.5d;
            double d2 = 1.123456789123456d;
            Console.WriteLine(d1);//12345678912345.5
            Console.WriteLine(d2);//1.123456789123456
        }
    }
}


decimal 数据类型可以存储从±1.0 x 10-28到±7.9228 x 1028的小数。它在内存中占据16个字节。decimal 是.NET中Decimal结构的关键字别名。decimal 类型比浮点和双精度类型具有更高的精度和更小的范围,因此适用于财务和货币计算。使用带有文字的 m 或 M 后缀使其成为 decimal 类型

decimal示例代码1:

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

namespace DataTypeDecimal
{
    internal class Program
    {
        static void Main(string[] args)
        {
            decimal d1 = 123456789123456789123456789.5m;
            decimal d2 = 1.1234567891345679123456789123m;
            decimal d3 = 1.0;//不带后缀M/
            decimal d4 = 1.0m;
            Console.WriteLine(d1);
            Console.WriteLine(d2);
            Console.WriteLine(d3);
            Console.WriteLine(d4);
        }
    }
}
//这个代码是会报错误的,刚开始学习的朋友可以在“运行结果”中找答案,自己修改。

decimal示例代码2:

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

namespace DataTypeDecimal
{
    internal class Program
    {
        static void Main(string[] args)
        {
            decimal d1 = 123456789123456789123456789.5m;
            decimal d2 = 1.1234567891345679123456789123m;
            decimal d3 = 1.0M;//不带后缀M/
            decimal d4 = 1.0m;
            Console.WriteLine(d1);
            Console.WriteLine(d2);
            Console.WriteLine(d3);
            Console.WriteLine(d4);
        }
    }
}


Tags:

最近发表
标签列表