浮点量是由以下部分组成的:整数部分、小数点、分数部分、指数部分和浮点后缀。指数部分(如果有的话),是由ASCII字母E或e后面跟一个带符号的整数构成。
一个最简单的浮点量是由一个数字(在整数部分或分数部分)和以下之一构成:小数点、指数或者浮点后缀;所有其它部分均为可选项。
如果浮点量的后缀是ASCII字符F或f,其类型float;否则为double型(其后可选带后缀D或d)。
<浮点量>定义为:
<数字串>.[<数字串>][<指数部分>][<浮点后缀>] 或
.[<数字串>][<指数部分>][<浮点后缀>] 或
<数字串><指数部分>[<浮点后缀>] 或
<数字串>[<指数部分>]<浮点后缀>
<数字串>定义为:
<数字>{<数字>}
<指数部分>定义为:
<指数指示符><带符号整数>
<指数指示符>定义为:
E 或
e
<带符号整数>定义为:
[<正负号>]<数字串>
<正负号>定义为:
- 或
<数字>定义为以下之一:
0 1 2 3 4 5 6 7 8 9
<浮点后缀>定义为以下之一:
D d F f
最小的非0正float量为1.40239846e-45f;最大的正float量为3.40282347e+38f。最小的非0正double量为4.94065645841246544e-324;最大的正double量为1.79769313486231570e+308。
以下情况会导致编译错误:
浮点量太长,使得内部转换后成为IEEE 754标准中的无穷大;
非0浮点量太小,使得内部转换后成为0。
但如果内部转换后能获得一个正常浮点值的浮点量,将不出编译错误。
以下是一些float量的例子:
1e1f 2.f .3f 0f 3.14f 6.022137e+23f
以下是一些double量的例子:
1e1 2. .3 0.0 3.14 3.2e-8d 1e137