一周学会 C# (值的类型四)
C# 才鸟( QQ:249178521 )
9. 浮点类型
**_ 类型 _ **
|
位数
|
System.
|
与 CLS 兼容 ?
|
后缀
---|---|---|---|---
float
|
32
|
Single
|
是
|
F f
double
|
64
|
Double
|
是
|
D d
C# 默认的浮点类型是 double ,所以你要使用 float 型,就必须在数字后面加后缀 F 或 f 。
123.F 是错误的,因为 C# 认为这会引起歧义。 F 究竟是 123. 这个浮点数的后缀还是 123 这个 int 类实例的函数? C# 编译器认为这是个错误,因为 int 类没有 F 这个方法!
10. 浮点数的操作符
- ** 大部分的操作符和整数的一样 ** ** **
w ** 取余 ** ** % ** ** 是允许的 ** ** ( ** ** 在 ** ** C/C++ ** ** 是不允许的 ** ** ) **
w ** 移位操作符是不允许的 ** ** **
- ** 浮点数运算不会抛出错误 ** ** **
w ** 很小的结果会转为 ** ** 0 **
w ** 很大的结果会转为 ** ** +/- Infinity **
w ** 无效的操作,结果会转为 ** ** NaN **
w ** 只要有一个操作数是 ** ** NaN ** ** ,结果就转为 ** ** NaN **
11. 浮点数的转换
- ** float ** ** 转为 ** ** double **
w ** 隐式转换 ** ** **
w ** 不会抛出错误 ** ** **
- ** double ** ** 转为 ** ** float **
w ** 显式转换 ** ** **
w ** 不会抛出错误 ** ** **
- ** 整数 ** ** ** ** 转为 ** ** ** ** 浮点数 ** ** **
w ** 隐式转换 ** ** **
w ** 不会抛出错误 ** ** **
w ** 会损失精度,但不会改变大小 ** ** **
- ** 浮点数 ** ** 转为 ** ** ** ** 整数 ** ** **
w ** 显式转换 ** ** **
w ** 可能会抛出溢出错误 ** ** **