您的当前位置:首页正文

数据类型与数据类型转换——附带实例

2024-11-27 来源:个人技术集锦

个人学习记的笔记,适合初学者,附有详细案例与说明。个中可能含有错误,欢迎交流

数据类型

变量相当于一个用来放数据的盒子,变量名即盒子的名字,数据类型即盒子可以存放的物品的类型

变量命名规则

int b中的b既是一个变量。

变量的命名遵循驼峰规则,名称为一个单词时候,首字母小写。为多个单词的时候,第一个单词的首字母小写,其后单词首字母大写。

int    student;
int  studentName;

整形:byte、short、int、long (定义整数)

            //byte的范围是 -128~127
            byte b = 255;
            // byte c = -1; 低于范围报错
            // byte d = 256; 高于范围报错
            //short的范围是-32768~32767
            short s = 32767;
            // int范围-2147483648~2147483647
            int i = 0;
            //long的范围是-9*10^38~9*10^38
            long h = 22222;

            h = b;//(未报错)可以将范围较小的数据赋值给大的(二进制前没有的部分自动补0)
            b = h;//(报错)不能将范围大的赋值给晓得(类似于发生溢出)

浮点型:float、double(定义小数与整数,浮点:浮动小数点)

            //float的范围是 -3.4*10^38~3.4*10^38~
            float f0 = 1.1;//赋值是小数且不加后缀时,默认是双精度类型double
            float f = 1.1f;
            //double的范围是-5.0*10^324~(-1.7*10^38~1.7*10^38)
            double j = 1.1;
            j = f;//范围大的可以接收范围小的
            j = i;//浮点型可以接受整数型,整数型不能接收浮点型

十进制类型:decimal

            //decimal的范围是(-7.9*10^28~7.9*10^28)/10^(0~28)
            decimal de = 1.1m;//类似于浮点型数据的float,但是精度更高,不加后缀M时默认是双精度类型double

布尔型:bool

            //bool只有两种值true或者false
            bool b1 = true;
            bool b2 = false;
            bool b3 = 1 == 1;//也可以在其后将一个表达式的真假作为他的值来赋值
            bool b4 = f == 0;

字符&字符串类型:char、string

            //string表示字符串,字符串用双引号包含
           string st = "asdfgh111";//字符串中可以是多个字符(可以包含数字)也可以是单个字符,都要用双引号包含
            string st1 = "c";
            string st3 = 'c';//(报错)不能用单引号

            //char表示字符,字符用单引号包含
            char ch = 'cc';//(报错)不能是多个字符
            char ch1 = 'c';//必须是单个的字符(可以是数字)
            char ch2 = "c";//(报错)不能用双引号

null类型

null本身即为一个空值,不可创建变量,只能作为值赋给字符串变量

            string r = null;//只有字符串可以赋空值
            char p = null;//(报错)字符、数字类型、bool不可赋空值
            int t = null;//(报错)
            bool h = null;//(报错)

案例

 //案例:买西瓜两元一斤,满十元,十元的部分打七五折,不满十元的部分不打折
            double number,money, weight=16;
            number = weight * 2;
            money = ((int)(number / 10)*10*0.75+number%10);//将(int)加在double等其他类型前,作为显式转换,将数据转为int类型
            //思考:32元分为30与2,30作为十得整数倍乘以0.75,2作为余数部分保留
            //需要求32里有几个10,所以用到double类型转为int类型时舍弃小数位的特效
            //在double中32\10=3.2,这时转为int类型为3,再将int类型的3*10即可得到30,此时乘以折扣
            //最后将30*0.75再加上%求余得到的2,最终求出实际值
            MessageBox.Show(money.ToString());//(显示24.5)

数据类型换换

显式转换(int)

(int)表示使用强制显式转换,将数据转化成32位整形,只保留整数位,不四舍五入

(int)2.1=2;
(int)2.5=2;
(int)2.7=2

int.Parse()

Int.Parse() 仅用作将string转换成int。其他时候做转换使用Convert

int i = int.Parse("12.3");//(输出结果12)将string类型的12.3转换为int类型的12。因为int不保留小数
int i = int.Parse(null);//(报错)string类型不能为空
int i =Convert.ToInt32(null);//(输出0)int类型为空值时,默认为0

Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常。

Convert.ToInt32( )

Convert.ToInt32(double value),可以将其他类转换为int类型,在转换double型时当数值为X.5时,返回相邻两数中的偶数,其他时候遵循四舍五入原则。

Convert.ToInt32(4.5)=4;
Convert.ToInt32(5.5)=6;//在X.5时,返回相邻两数中的偶数
Convert.ToInt32(1.1)=1;
Convert.ToInt32(1.6)=2;//其他时候四舍五入
显示全文