一、c#有15个预定义类型,其中13个是值类型,两个是引用类型(string 和 object)这里主要说明整型、浮点型、布尔型以及引用型

1、整型数据

2、浮点型

浮点型从精度有低到高有float、double、decimal。他们的命名规则如下:

(1)、float数据类型用于较小的浮点数,因为它要求的精度较低。

double数据类型比float数据类型大,提供的精度也大一倍(15位)。

如果在代码中没有对某个非整数值(如12.3)硬编码,则编译器一般假定该变量是double。

如果想指定该值为float,可以在其后加上字符F(或f),如:

float f = 12.3F;

(2) decimal类型专门用于进行财务计算,使用decimal类型提供的28位的方式取决于用户。

要把数字指定为decimal类型,可以在数字的后面加上字符M或(m),如:

decimal d=12.30M;

3、布尔型

布尔型只会返回两个值ture/false.

int a=ture/false;

4、字符型

它的定义是 char='只能放一个字符';

如果把字符把放在""(双引号)内,编译器会把它看作是字符串,从而产生错误。

二、常量和变量的区别

变量:是指在程序的运行过程中随时可以发生变化的量 常量:是指在程序在运行过程中不会发生变化的变量。

常量的特点:1、必须在声明是赋值

2、不能在在程序运行时,给常量赋值

3、常量是静态的。不必须(实际上,是不允许)在常量声明中包含修饰符static

三、不同数据类型之间是如何转换的

1、在C#中数据类型转换分为两种:

1)隐式[又叫自动]类型转换

double和int之间就是(飞机场与飞机)这种关系,我们可以这样理解,double的取值范围比int要大得多所以double可以装得下int :

int a=1234;

double b=a; 系统会把a整型变量的值赋值给double变量b.这就是隐式[又叫自动]类型转换

那反过来:

double a=1234;

int b=a; //系统编译时会报错

2)显式[又叫强制]类型转换

那如何进行强制转换呢?c#提供了非常简便的方法,如:

double a=1234;

int b=(int)a; //这样就强制把double类型,转换为int类型

2、其它数据类型之间的转换(1、字符串转换为其它类型 2、任意类型之间的转换)

1)、字符串转换为其它类型

语法:

XX.Parse(字符串); 这里的xx代表的如:double,int,bool等

举个例子来说明一下:

string strValue="123.45"; //这是一个字符串,时面的值是"123.45"

现要把它转换成小数类型,就可以使用double.Parse();来进行转换

double dValue=double.Parse(strValue);

2)、任意类型之间的转换

语法:

目标数据类型 变量名=Convert.ToXX(转化前的变量名);

如:把一个布尔类型转换为整型

bool a = true;

int b = Convert.ToInt16(a);

Console.WriteLine("转换后的结果是:"+b); //转换后的结果是:1

注意:

c#中类型转换的有两种,()转换和convert转换
(1)这两个方法的最大不同是它们对null值的处理方法:
Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常。
没搞清楚Convert.ToInt32和int.Parse()的细细微区别时千万别乱用,否则可能会产生无法预料的结果,举例来说:假如从url中取一个参数page的值,我们知道这个值是一个int,所以即可以用Convert.ToInt32(Request.QueryString["page"]),也可以用,int.Parse(Request.QueryString["page"]),但是如果page这个参数在url中不存在,那么前者将返回0,0可能是一个有效的值,所以你不知道url中原来根本就没有这个参数而继续进行下一下的处理,这就可能产生意想不到的效果,而用后一种办法的话没有page这个参数会抛出异常,我们可以捕获异常然后再做相应的处理,比如提示用户缺少参数,而不是把参数值当做0来处理。
(2)还有一点区别就是
a. Convert.ToInt32(double value)
如果 value 为两个整数中间的数字,则返回二者中的偶数;即 3.5转换为4,4.5 转换为 4,而 5.5 转换为 6。 不过4.6可以转换为5,4.4转换为4
b. int.Parse("4.5")
直接报错:"输入字符串的格式不正确".
c. int(4.6) = 4
Int转化其他数值类型为Int时没有四舍五入,强制转换
int.Parse是转换String为int
Convert.ToInt32是转换继承自Object的对象为int的.
你得到一个object对象,你想把它转换为int,用int.Parse就不可以,要用Convert.ToInt32.
个人总结:
(1)Convert.ToInt32的参数比较多,Int.Parse只能转换string类型的.
(2)Parse就是把String转换成int,char,double....等,也就是*.Parse(string) 括号中的一定要是string.
(3)Convert可以提供多种类型的转换,也就是Convert.*()括号中可以为很多种类型(包括string).

           

 

         

          

        

 

C#的数据类型、数据类型的转化的更多相关文章

  1. Javascript基础系列之(三)数据类型 (类型转化)

    所有语言都有类型转化的能力,javascript也不例外,它也为开发者提供了大量的类型转化访法,通过全局函数,可以实现更为复杂的数据类型. var a = 3; var b = a + 3; var ...

  2. 简单讨论数据类型(byte)强制转化后的数值变化规律

    package com.wangzhu.datatype; /** * Java基本数据类型练习 * * @ClassName: DataTypes * @Description: TODO * @a ...

  3. python中的数据类型与json的数据类型之间的转化

    什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programm ...

  4. python 全栈开发,Day61(库的操作,表的操作,数据类型,数据类型(2),完整性约束)

    昨日内容回顾 一.回顾 定义:mysql就是一个基于socket编写的C / S架构的软件 包含: ---服务端软件 - socket服务端 - 本地文件操作 - 解析指令(mysql语句) ---客 ...

  5. python运算符,数据类型,数据类型操作,三目运算,深浅拷贝

    算数运算符: Py2中精确除法需要导入:from __future__ import division,(符由特  ,将来的.滴未省,除法) py3不需要导入 赋值运算符: 比较运算符: 成员运算符: ...

  6. 请你讲一讲JavaScript有哪些数据类型, 数据类型判断有哪些方法?

    js的8种数据类型 JavaScript中有8种数据类型, 包括基本数据类型(number, string, boolean, null, undefined, symbol, bigint)和引用数 ...

  7. python基础数据类型 数据类型

    数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定 ...

  8. c++数据类型和定义

    我们都知道,刚开始学习数学的时候.乘法口诀.99乘法口诀.这个是大家都需要背的.背熟了这个,大家才能知道遇到算术题如何计算.这个99乘法口诀就是一种定义. 同样任何的语言都会有很多的定义.比如语文:各 ...

  9. 语言基础:C#输入输出与数据类型及其转换

    今天学习了C#的定义及特点,Visual Studio.Net的集成开发环境和C#语言基础. C#语言基础资料——输入输出与数据类型及其转换 函数的四要素:名称,输入,输出,加工 输出 Console ...

  10. java基础学习总结二(标识符、字符集、数据类型以及类型转换)

    一:标识符 1:标识符可以由字母.数字.下划线_.$符等组成2:标识符的首字母只能是字母.数字.下划线3:标识符不能使用关键字或者保留字4:标识符可以是中文,但是不建议使用中文5:标识符可以任意长,没 ...

随机推荐

  1. mysql 和excel相互转换

    原文地址:http://blog.sina.com.cn/s/blog_43eb83b90100h0mc.html 今天是全国数学建模比赛,同学选的一个题目需要对一个large的Excel表格进行统计 ...

  2. Delphi 中的常用事件

    OnActive 焦点称到窗体或控件时发生 OnClick 鼠标单击事件 OnDbClick 鼠标双击事件 OnClose和OnCloseQuery 当关闭一个窗体时就会响应OnClose和OnClo ...

  3. 解决Apache的错误日志巨大的问题以及关闭Apache web日志记录

    调整错误日志的级别 这几天 apache错误日志巨大 莫名其妙的30G  而且 很多都是那种页面不存在的  网站太多了  死链接相应的也很多于是把错误警告调低了 因为写日志会给系统带来很大的损耗.关闭 ...

  4. jquery的动画函数animate()讲解一

    jquery animate 动画效果使用说明 animate( params, [duration], [easing], [callback] ) 用于创建自定义动画的函数. 这个函数的关键在于指 ...

  5. Flex4 flash builder保留MXML转换的AS代码

    Flex4 flash builder保留MXML转换的AS代码 项目->属性->Flex编译器 | 附加的编译参数 加上 -keep 生成的Test005-interface.as文件: ...

  6. Spring @Transactional使用的示例

    Spring @Transactional使用的示例: 参考: http://blog.csdn.net/seng3018/article/details/6690527 http://blog.si ...

  7. jQuery查询性能考虑

    http://blog.163.com/neusoft_hao@yeah/blog/static/120544724201282810510215/

  8. 【Scala】Scala之Control Structures

    一.前言 前面学习了Scala的Numbers,接着学习Scala的Control Structures(控制结构). 二.Control Structures Scala中的控制结构与Java中的颇 ...

  9. android延迟执行

     延迟执行可以通过以下操作实现,按照推荐的顺序列出来 1. new Handler().postDelayed(new Runnable(){ public void run() { //execut ...

  10. Linux编程之PING的实现

    PING(Packet InterNet Groper)中文名为因特网包探索器,是用来查看网络上另一个主机系统的网络连接是否正常的一个工具.ping命令的工作原理是:向网络上的另一个主机系统发送ICM ...