Nếu tôi có số dấu phẩy động trong Haskell thì làm thế nào để kiểm tra nếu nó là một số nguyên.Làm cách nào để kiểm tra nếu số dấu chấm động là số nguyên trong haskell?
15
A
Trả lời
24
isInt x = x == fromInteger (round x)
> isInt 2
True
> isInt 2.5
False
Và chỉ là một lời nhắc nhở: luôn luôn nhớ lời nguyền toàn năng của số dấu chấm động:
> isInt (0.1^2*200)
False
> 0.1^2*200
2.0000000000000004
15
Được rồi, vì vậy đây là một năm muộn, nhưng tôi là một fan hâm mộ lớn của một sửa đổi ở trên:
--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
vì vậy, ví dụ isInt 4.0001 3
lợi nhuận True
nhưng isInt 4.0001 4
lợi nhuận False
. Chạy nó với một giá trị xung quanh 10
hầu như luôn đủ chính xác mà các lỗi phao sẽ là những gì cung cấp cho các vấn đề của bạn một lần nữa; Tôi thường sử dụng 7
.
Các vấn đề liên quan
- 1. Python: Kiểm tra nếu đối số là một số nguyên
- 2. Bash: Kiểm tra nếu biến là số nguyên
- 3. Làm thế nào để kiểm tra, nếu một giá trị là một số nguyên với plpgsql?
- 4. Làm thế nào để kiểm tra nếu một số nguyên đã ký là neg hoặc pos?
- 5. Biến đổi dấu chấm động thành số nguyên?
- 6. php, thêm số không trailing nếu số là số nguyên
- 7. Xác định nếu một số lượng nhất định là số nguyên tố trong Haskell
- 8. C++ Kiểm tra số nguyên.
- 9. Kiểm tra xem một số nguyên có phải là số nguyên của một số khác
- 10. Kiểm tra nếu giá trị là một số nguyên trong Sass
- 11. Làm thế nào để kiểm tra nếu một nguyên thủy trong Mục tiêu-C là nil?
- 12. kiểm tra Java nếu số trong khoảng
- 13. 3 dấu chấm trong tham số là gì?/Tham số biến số (...) là gì?
- 14. Kiểm tra XPath nếu giá trị nút là số
- 15. Java, Kiểm tra xem số nguyên có phải là bội số của một số
- 16. Ruby kiểm tra nếu số chẵn, phao
- 17. Kiểm tra Jquery nếu giá trị là số
- 18. Kiểm tra tràn số nguyên SSE2
- 19. tăng tinh thần số phân tích số nguyên của các số nguyên và dấu phẩy động
- 20. Làm thế nào để bạn tính toán div và mod của số dấu chấm động?
- 21. Làm cách nào để kiểm tra xem liệu giá trị có phải là số nguyên trong MySQL không?
- 22. C++ Làm thế nào để tránh dấu chấm động số học lỗi
- 23. Tại sao một số nguyên theo sau là dấu chấm một chữ số hợp lệ trong JavaScript?
- 24. Tham số hóa các kiểu theo số nguyên trong Haskell
- 25. Kiểm tra xem một số nguyên nằm trong phạm vi
- 26. Làm cách nào để chuyển đổi chuỗi thành danh sách các số nguyên trong Haskell
- 27. làm thế nào để kiểm tra datatype trong nút js-cụ thể cho số nguyên
- 28. Làm thế nào để kiểm tra trong MATLAB nếu một vector chỉ chứa số không?
- 29. Cách tốt hơn để kiểm tra xem chuỗi có phải là số nguyên trên iPhone không?
- 30. Làm cách nào để kiểm tra bất kỳ số bị thiếu nào từ một chuỗi số?
mát mẻ, có tích hợp sẵn (ngoài tò mò) – Peter
@Peter: không, theo Hoogle. – yairchu
Lưu ý rằng 'isInt (1/0) == True' – hvr