CSharp Basic Tutorial Chapter-2-3 数值类型


predefinedTypes
literal1
literal3
literal4

数值Literal的类型推断

  • 默认情况下,编译器会推断一个数值Literal是double还是整数类型:
  • 如果包含小数点,或以指数形式展现,那么就是double类型
  • 否则literal的类型是下面列表里第一个能容纳该数值的类型:int,uint,long,ulong

literal5

数值的后缀

  • U、L很少使用,因为uint、long、ulong要么可以被推断出来,要么可以从int隐式转换过来
  • D 其实很多余。
  • F、M是比较有用的,当指定float或decimal的Literal的时候,应该加上。

backType
backTypeTest

类型转换 整数转换

TypeExchange
TypeExchange2

类型转换 浮点型转换

TypeExchange3

类型转换 浮点型和整数类型转换

TypeExchange4

注意

  • 当从浮点型转为整型时,小数部分是被截断的,没有舍入。
  • 把一个很大的整数隐式的转换为浮点类型之后,会保证量级不变,但是偶尔会丢失精度。这是因为浮点类型有更多的量级,而精度可能不足。

attention

decimal

decimal
operation1
operation2
operation3
operationdemo
overflow1
overflow2
overflowcheck
overflowdemo
uncheck
overflowcheck2
overflowdemo2

8,16位整数类型

  • byte、sbyte、short、ushort
  • 没有自己的算术操作符,C#会按需对它们进行隐式转换到大一点的整数类型
  • 这里会将short转化为int 然后int默认隐式转化为short的时候就会编译出错

816Type1
816Type2

float double的特殊数值

floatdouble
floatdoubledemo

NAN 类型

NAN
NANDemo

double VS decimal

doubleVSdecimal

实数的舍入错误

error
floatdemo

Decimal

基于10,可以精确的表达基于10的数据(包括基于2,5的数据)
循环数据
double 和 decimal 都不可以精确的表达循环数据

loopdata


文章作者: Chaoqiang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Chaoqiang !
评论
 上一篇
CSharp Basic Tutorial Chapter-2-4 bool类型 CSharp Basic Tutorial Chapter-2-4 bool类型
bool的特点 转换bool类型无法和数值类型进行相互转换PS:这里显然 前面两个不相等 不同的实例 不同的引用类型 第三个相等 同一个引用对象 条件操作符&&和||条件操作符 &和|条件操作符 三元操作符
下一篇 
CSharp Basic Tutorial Series Chapter-2-2 转换  值类型和引用类型  内置类型分类 CSharp Basic Tutorial Series Chapter-2-2 转换 值类型和引用类型 内置类型分类
Main Content Introduction 转换如果编译器可以断定转换肯定会失败,那么两种转换都会被禁止。 值类型 VS 引用类型C# 类型分类 值类型 值类型的赋值值类型实例的赋值动作总是复制了该实例。 引用类型 引用类型赋值把
  目录