浮点数

浮点字面值是实数的局部近似值。局部意味着接近于零。浮点数在接近零的地方密集,在远离它的地方会失去精度。

类型

我们提升了主浮点类型, double 从C。

type double = "double";

它是一种双精度浮点表示,通常符合IEEE规范。

直接常量

浮点字面值有两部分,一个十进制数称为尾数,10的幂次称为指数。

12.34
12.34E-4

尾数必须包含小数点,两边各有一个数字。指数是可选的,由字母组成 Ee 后跟一个小的十进制整数文本,或者一个加号或减号,以及一个小的十进制整数文本。

如果指数存在,则尾数乘以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

有关详细信息。