Ich habe an einem Programmierwettbewerb teilgenommen und eines der Probleme Eingabedaten enthalten eine Dezimalzahl im Dezimalformat: 0.75
ist ein Beispiel.
Das in Double
zu parsen ist trivial (ich kann read
dafür verwenden), aber der Verlust der Genauigkeit ist schmerzhaft. Man muss sehr vorsichtig sein mit Double
comparisies (das war ich nicht), was redundant erscheint, da man den Datentyp Rational
in Haskell hat.
Wenn ich versuche, das zu verwenden, habe ich entdeckt, dass zu read
a Rational
eine Zeichenfolge im folgenden Format bereitstellen muss: numerator % denominator
, die ich natürlich nicht habe.
Die Frage ist also:
Was ist der einfachste Weg, um eine Dezimaldarstellung eines Bruches in Rational
zu analysieren?
Die Anzahl der externen Abhängigkeiten sollte ebenfalls berücksichtigt werden, da ich keine zusätzlichen Bibliotheken in den Online-Judge installieren kann.
Tags und Links haskell parsing decimal rational-numbers