C++ Primer Plus
第三章 处理数据
3.3 浮点数
3.3.2 浮点类型
-
可以在Cfloat或者float.h(C语言)中找到系统对float、double和long double的限制。、
-
cout.setf()函数可以将cout输出是常量后面省去的0输出。
3.3.3 浮点常量
一般浮点数常量是double类型,如果想要定义float或者long double类型的浮点常量,常量后面加f或l(大小写都可以)。
3.4 算术运算符
3.4.1 运算符优先级
同一级运算符,执行从左到右的运算法则,e.g. a=3*5/8; 先算乘再算除。
3.4.2 除法分支
在除法运算中,如果变量都是整数,那么结果将会省略小数,如果变量中,有小数则会输出小数。
3.4.4 数据转换
-
以{}方式初始化进行转化, 初始化时不允许缩窄,e.g. float i=1.555;int a {i}; 将会报错。
-
表达式里面的转换,当运算涉及两种类型时,较小的类型将被转换为较大的类型。总之,编译器通过校验表来确定在算术表达式中执行的转换。校验表(执行C++11标准)见C++ Primer Plus, page 55.
-
强制类型转换。不改变变量本身,而是创建一个新的变量。格式: typeName (value),纯粹的C++风格. 4个强制类型转换运算符; static_cast(typeName) (value);auto关键字,根据variable的初始值来判定variable的类型。