ハスケルに浮動小数点数がある場合は、それが整数かどうかをどのようにテストすればいいですか?浮動小数点数がhaskellの整数であるかどうかをテストするにはどうすればよいですか?
15
A
答えて
24
isInt x = x == fromInteger (round x)
> isInt 2
True
> isInt 2.5
False
そして、ちょうどリマインダー:常に浮動小数点数の全能の呪いを覚えている:
> isInt (0.1^2*200)
False
> 0.1^2*200
2.0000000000000004
15
わかりましたので、これは後半年ですが、私はの修正の大ファンです上記:
--Returns if x is an int to n decimal places
isInt :: (Integral a, RealFrac b) => b -> a -> Bool
isInt x n = (round $ 10^(fromIntegral n)*(x-(fromIntegral $ round x)))==0
ので、例えばisInt 4.0001 3
戻りTrue
しかしisInt 4.0001 4
戻りFalse
。 10
の値で実行すると、float-errorsが問題を再現できるほど正確になります。私は通常7
を使用します。
関連する問題
- 1. 浮動小数点数がGoの整数であるかどうかをテストするにはどうすればよいですか?
- 2. バイナリ浮動小数点を10進小数に変換するにはどうすればよいですか?
- 3. 変数がC++の整数または浮動小数点かどうかチェック
- 4. 関数が整数または浮動小数点数を扱えるようにするにはどうすればよいですか?
- 5. 浮動小数点数は浮動小数点数ですか?
- 6. 浮動小数点数をHTMLで正しく配置するにはどうすればよいですか?
- 7. 文字列が浮動小数点数であるかどうかを確認するにはどうすればよいですか?
- 8. 浮動小数点数に0を追加するにはどうすればよいですか?
- 9. 浮動小数点数を制限値以下にクリップするにはどうすればよいですか?
- 10. スペースがないときに浮動小数点数を強制的にリサイズするのではなく、浮動小数点数を浮動小数点以下の表の下に移動するにはどうすればよいですか?
- 11. 未設定の浮動小数点と値が0の浮動小数点を区別するにはどうすればよいですか?
- 12. mit-schemeで浮動小数点数を返すにはどうすればよいですか?
- 13. 浮動小数点数に小数点が含まれているかどうかを確認
- 14. 浮動小数点数を定義するにはどうすればいいですか?
- 15. webgl - 浮動小数点変数を宣言するにはどうすればいいですか?
- 16. 自動浮動小数点プレースホルダのバグを削除するにはどうすればよいですか?
- 17. Golangどのように整数と浮動小数点を掛けることができますか
- 18. タイプが整数型か浮動小数点型かに基づいてテンプレートメソッドを変更するにはどうすればよいですか?
- 19. C#(NFop)でXSL-FOで浮動小数点を使用するにはどうすればよいですか?
- 20. Realm jsで浮動小数点のリストを指定するにはどうすればよいですか?
- 21. 浮動小数点型の列の小数点以下の桁数はどのように数えますか?
- 22. CIImageを32ビット/チャンネルの浮動小数点ピクセルバッファにレンダリングするにはどうすればよいですか?
- 23. ジンジャーで小数点の表示を浮動小数点数から切り離すにはどうすればよいですか?
- 24. Haskellで小数点位置のない浮動小数点整数を表示する簡単な方法は?
- 25. NSNumberを浮動小数点に変換するにはどうすればよいですか?
- 26. 入力をループ内の浮動小数点数および/または整数として決定するにはどうすればよいですか?
- 27. 浮動小数点数の乗算で浮動小数点を浮動小数点数に比べて高速に行うのはなぜですか?
- 28. どのように浮動小数点数Naを入力できるようにしようと、このコードイムで入力浮動小数点数
- 29. 浮動小数点値でNSArrayを作成するにはどうすればいいですか?
- 30. 浮動小数点型の浮動小数点数を使用している浮動小数点数は、浮動小数点数の上位16桁です。
クールで、そこには(好奇心から)組み込まれています – Peter
@ピーター:いいえ、ホーグルによると。 – yairchu
'isInt(1/0)== True'に注意してください – hvr