Ruby中浮点的目的

时间:2013-05-02 23:35:19

标签: ruby floating-point

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

2 个答案:

答案 0 :(得分:6)

过去,整数运算速度更快,有时FPU不存在或在架构中是可选的。

然而,今天,FP几乎是通用的,它非常快,实际上 可以将FP用于所有事情。

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

通常,整数操作仍然更快,并且可用操作的目录与程序员期望的更匹配。与浮点系统提供的52位整数相比,64位整数更好地映射到字节和存储系统。

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

但请注意,原因并非“更准确”。 FP和整数运算返回整数操作数的完全相同的结果。 FP有52位,虽然它比标准的32位 int 大,但它比常见的64位长或长的长,所以没有人真正赢得或失去精度。两者都很准确。

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

答案 1 :(得分:0)

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