Tôi đã tham gia vào dữ liệu đầu vào a programming contest và one of the problems 'bao gồm một số thập phân theo định dạng thập phân: 0.75
là một ví dụ.Làm cách nào để phân tích một phần thập phân thành Rational trong Haskell?
Phân tích cú pháp thành Double
là không đáng kể (Tôi có thể sử dụng read
cho điều đó), nhưng mất chính xác là đau đớn. Một trong những cần phải rất cẩn thận với Double
so sánh (tôi đã không), mà dường như dư thừa kể từ khi một có Rational
kiểu dữ liệu trong Haskell.
Khi cố gắng sử dụng điều đó, tôi đã phát hiện ra rằng để read
một Rational
người ta phải cung cấp một chuỗi theo định dạng sau: numerator % denominator
, mà tôi, rõ ràng là không có.
Vì vậy, câu hỏi là:
cách dễ nhất để phân tích một biểu diễn thập phân của một phần nhỏ vào Rational
là gì?
Số lượng phụ thuộc bên ngoài cũng cần được xem xét, vì tôi không thể cài đặt thêm thư viện vào thẩm phán trực tuyến.
Cảm ơn bạn! Những công việc này. – Rotsor
bạn có thể muốn thêm 'readSigned' nếu bạn muốn đọc được số âm:' fst. head $ readSigned readFloat "-3.14" :: Rational' – newacct