浮点数
浮点字面值是实数的局部近似值。局部意味着接近于零。浮点数在接近零的地方密集,在远离它的地方会失去精度。
类型
我们提升了主浮点类型, double 从C。
type double = "double";
它是一种双精度浮点表示,通常符合IEEE规范。
直接常量
浮点字面值有两部分,一个十进制数称为尾数,10的幂次称为指数。
12.34
12.34E-4
尾数必须包含小数点,两边各有一个数字。指数是可选的,由字母组成 E 或 e 后跟一个小的十进制整数文本,或者一个加号或减号,以及一个小的十进制整数文本。
如果指数存在,则尾数乘以10,即为有符号整数部分指数的幂。
操作
浮点数支持带前缀的反 - ,加中缀 + ,中缀减法 - ,中缀乘法 * 中缀除法 / 以及库中函数提供的许多其他操作。
也可以进行相等比较 == ,不平等 != ,小于 < ,小于或等于 <= ,大于 > 大于或等于 >= . 然而,这些比较反映了浮点运算,它只近似于实数运算。如果公式
1.0 / 3.0 * 3.0 == 1.0
是假的。要正确地纠正这一点,需要对数值分析有深入的了解。Felix提供了这个功能 abs 可以这样使用:
abs ( 1.0 / 3.0 * 3.0 - 1.0) < 1.0e-3
检查结果约为小数点后3位。
小结:双重比较
算符 |
类型 |
句法 |
语义 |
---|---|---|---|
= |
双*双->布尔 |
中缀 |
平等 |
!= |
双*双->布尔 |
中缀 |
不相等 |
<= |
双*双->布尔 |
中缀 |
小于等于 |
< |
双*双->布尔 |
中缀 |
更少 |
> |
双*双->布尔 |
中缀 |
大于或等于 |
> |
双*双->布尔 |
中缀 |
更大的 |
双重汇总操作
算符 |
类型 |
句法 |
语义 |
---|---|---|---|
+ |
双*双->双 |
中缀 |
加法 |
- |
双*双->双 |
中缀 |
减法 |
* |
双*双->双 |
中缀 |
乘法 |
/ |
双*双->双 |
中缀 |
除法 |
- |
双->双 |
前缀 |
否定 |
阴性 |
双->双 |
前缀 |
否定 |
防抱死制动系统 |
双->双 |
前缀 |
绝对值 |
更多的浮动
Felix有更多的浮动类型。参见参考手册:
https://felix.readthedocs.io/en/latest/floats.html
有关详细信息。