26

rem 给出了这个:

Prelude> rem 9 8
1

我想要这样的东西:

Prelude> nonIntRem 9.1 8
1.0999999999999996

我是这样实现的:

nonIntRem x y = x - (y * (fromIntegral $ truncate (x/y)))

我的问题是:

  1. 标准的 Haskell 库中是否已经存在类似的东西?我更喜欢使用标准功能,我可能错过了它。
  2. 如果没有,这个函数在其他语言中是否有更标准的名称?也许是 fmod,但在这种情况下,否定的行为不像 mod,而是像 rem。如果没有标准的名字,你能不能给这个函数想一个更好的名字?
  3. 它似乎可以正常工作,但是如果您发现此功能有问题,我想了解一下。
4

1 回答 1

20

您追求的功能mod'来自Data.Fixed.

于 2012-12-25T05:29:43.647 回答