百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

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

bigegpt 2024-08-18 14:04 2 浏览

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

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

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

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);
        }
    }
}


相关推荐

悠悠万事,吃饭为大(悠悠万事吃饭为大,什么意思)

新媒体编辑:杜岷赵蕾初审:程秀娟审核:汤小俊审签:周星...

高铁扒门事件升级版!婚宴上‘冲喜’老人团:我们抢的是社会资源

凌晨两点改方案时,突然收到婚庆团队发来的视频——胶东某酒店宴会厅,三个穿大红棉袄的中年妇女跟敢死队似的往前冲,眼瞅着就要扑到新娘的高额钻石项链上。要不是门口小伙及时阻拦,这婚礼造型团队熬了三个月的方案...

微服务架构实战:商家管理后台与sso设计,SSO客户端设计

SSO客户端设计下面通过模块merchant-security对SSO客户端安全认证部分的实现进行封装,以便各个接入SSO的客户端应用进行引用。安全认证的项目管理配置SSO客户端安全认证的项目管理使...

还在为 Spring Boot 配置类加载机制困惑?一文为你彻底解惑

在当今微服务架构盛行、项目复杂度不断攀升的开发环境下,SpringBoot作为Java后端开发的主流框架,无疑是我们手中的得力武器。然而,当我们在享受其自动配置带来的便捷时,是否曾被配置类加载...

Seata源码—6.Seata AT模式的数据源代理二

大纲1.Seata的Resource资源接口源码2.Seata数据源连接池代理的实现源码3.Client向Server发起注册RM的源码4.Client向Server注册RM时的交互源码5.数据源连接...

30分钟了解K8S(30分钟了解微积分)

微服务演进方向o面向分布式设计(Distribution):容器、微服务、API驱动的开发;o面向配置设计(Configuration):一个镜像,多个环境配置;o面向韧性设计(Resista...

SpringBoot条件化配置(@Conditional)全面解析与实战指南

一、条件化配置基础概念1.1什么是条件化配置条件化配置是Spring框架提供的一种基于特定条件来决定是否注册Bean或加载配置的机制。在SpringBoot中,这一机制通过@Conditional...

一招解决所有依赖冲突(克服依赖)

背景介绍最近遇到了这样一个问题,我们有一个jar包common-tool,作为基础工具包,被各个项目在引用。突然某一天发现日志很多报错。一看是NoSuchMethodError,意思是Dis...

你读过Mybatis的源码?说说它用到了几种设计模式

学习设计模式时,很多人都有类似的困扰——明明概念背得滚瓜烂熟,一到写代码就完全想不起来怎么用。就像学了一堆游泳技巧,却从没下过水实践,很难真正掌握。其实理解一个知识点,就像看立体模型,单角度观察总...

golang对接阿里云私有Bucket上传图片、授权访问图片

1、为什么要设置私有bucket公共读写:互联网上任何用户都可以对该Bucket内的文件进行访问,并且向该Bucket写入数据。这有可能造成您数据的外泄以及费用激增,若被人恶意写入违法信息还可...

spring中的资源的加载(spring加载原理)

最近在网上看到有人问@ContextConfiguration("classpath:/bean.xml")中除了classpath这种还有其他的写法么,看他的意思是想从本地文件...

Android资源使用(android资源文件)

Android资源管理机制在Android的开发中,需要使用到各式各样的资源,这些资源往往是一些静态资源,比如位图,颜色,布局定义,用户界面使用到的字符串,动画等。这些资源统统放在项目的res/独立子...

如何深度理解mybatis?(如何深度理解康乐服务质量管理的5个维度)

深度自定义mybatis回顾mybatis的操作的核心步骤编写核心类SqlSessionFacotryBuild进行解析配置文件深度分析解析SqlSessionFacotryBuild干的核心工作编写...

@Autowired与@Resource原理知识点详解

springIOCAOP的不多做赘述了,说下IOC:SpringIOC解决的是对象管理和对象依赖的问题,IOC容器可以理解为一个对象工厂,我们都把该对象交给工厂,工厂管理这些对象的创建以及依赖关系...

java的redis连接工具篇(java redis client)

在Java里,有不少用于连接Redis的工具,下面为你介绍一些主流的工具及其特点:JedisJedis是Redis官方推荐的Java连接工具,它提供了全面的Redis命令支持,且...