1

Ruby中浮点数的目的是什么?我发现了一些关于使用更少字节或提高准确性的信息,但我不明白为什么你不总是使用浮点数。它不会给你一个更准确的结果吗?

4

2 回答 2

6

过去,整数运算要快得多,有时 FPU 不存在或者在架构中是可选的。

然而,今天,FP 几乎是通用的,它的速度非常快,而且实际上可以将 FP 用于任何事情。

大多数或所有 Javascript 实现都是这样工作的。

但总的来说,整数操作仍然更快,并且可用操作的目录更接近程序员的期望。64 位整数比浮点系统提供的 52 位整数更好地映射到字节和存储系统。

像 Ruby 这样的全功能语言几乎总是会同时实现整数和 FP 操作。它为用户提供了更多属性域的选择,而像 Javascript 这样更精简的语言可以选择其中一个。与 Javascript 相比,Ruby 更可能需要 ORM 之类的东西。

但是请注意,原因不是“更准确”。 FP 和整数运算对整数操作数返回完全相同的结果。FP 有 52 位,虽然它比标准的 32 位int大,但它比同样常见的 64 位 long 或 long long 小,所以没有人真正在精度上赢或输。两者都是准确的。

是的,正如 Jörg 所暗示的那样,整数运算更容易扩展到更高的精度。

于 2013-05-02T23:52:21.593 回答
0

对于某些操作,整数通常更快,有时您希望整数除法产生的斩波

于 2013-05-02T23:43:02.057 回答