Я участвовал в конкурсе по программированию и входные данные одной из задач включали дробное число в десятичный формат: 0,75
является одним из примеров.
Анализировать это на Double
тривиально (для этого я могу использовать read
), но потеря точности Это болезненно. Нужно быть очень осторожным с двойными
сравнениями (я не был), что кажется избыточным, поскольку в Haskell есть тип данных Rational
.
При попытке использовать это , Я обнаружил, что для чтения
a Rational
нужно предоставить строку в следующем формате: числитель% знаменатель
, что я, очевидно, не имеют.
Итак, возникает вопрос:
Каков самый простой способ разобрать десятичное представление дроби в Рациональное
?
Следует учесть количество внешних зависимостей. тоже внимание, так как я не могу установить дополнительные библиотеки в онлайн-судью.