web-dev-qa-db-ja.com

非整数のモジュラス/剰余関数

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. 正常に動作しているようですが、この機能に問題がある場合はお知らせください。
20
renick

あなたが求めている関数は mod' from Data.Fixed

18
shachaf