在Racket中定义单精度变量

时间:2017-08-06 09:07:21

标签: racket

我必须在Racket中运行一些我从未使用过的计算。

如何强制它计算单个或一半(如果有的话)精度浮点数?

我想出了如何在大花车中进行计算:

(bf/ (bf 1) (bf 7))

我知道浮动(双精度)的缩写是 fl 。我不知道单个浮点数的正确缩写。

1 个答案:

答案 0 :(得分:1)

' bigfloat'你引用的包是用于任意精度浮点数。正如你所指出的那样,你不太可能想要这些。

听起来你正在寻找标准的IEEE 64位浮点数。对于所有不精确的算术,Racket默认使用这些。

所以,例如:

(/ 1 pi)

产生

0.3183098861837907

一个可能的tripper-upper是当划分两个有理数时,结果将再次是有理数。所以,例如,

(/ 12347728 298340194)

产生

6173864/149170097

您可以使用exact->inexact(始终有效)或确保您的文字以小数结尾(除非您使用htdp语言)强制执行不精确的算术。

所以,例如:

(/ 12347728.0 298340194.0)

产生

0.04138808061511148

如果这不能回答你的问题,请告诉我。