Haskell 中的 Floating
和 Fractional
类有什么区别?
最佳答案
Fractional
和 Floating
的定义可以在 Prelude 的文档中找到:
因此,将其翻译成英语:Fractional
是我可以定义除法的任何类型的数字:
(/) :: Fractional a => a -> a -> a
例如,浮点数和分数(分数有分子和分母)都是这种情况。这不是
Int
的情况,因为如果将 Int
除以 Int
并不总是产生 Int
(但从技术上讲,这不是计算机上的另一种浮点除法)。Fractional
数字的子集是 Floating
数字,其中定义了三角函数。例如,一个分数的 sin
不可能总是产生一个分数:sin
被定义为一个无限序列的和。仅适用于非常有限数量的情况(例如 sin 0
)。基本上,计算机上定义三角函数的唯一数字(大约)是浮点数。关于haskell - Haskell 中的 Floating 和 Fractional 类有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41964228/