私はa programming contestとone of the problemsに参加しています。入力データに小数点以下の小数が含まれています:0.75
がその一例です。HaskellでRationalへの小数部分の解析方法は?
Double
に解析するのは簡単ですが(私はそれにはread
を使用できます)、精度の低下は苦痛です。 Double
の比較には非常に注意が必要です(私はそうではありません)。これは、Haskellのデータ型がRational
なので冗長なようです。
これを使用しようとすると、私はread
にRational
という文字列を次の形式で提供する必要があることを発見しました:numerator % denominator
、私は明らかに持っていません。
だから、質問は次のとおりです。
Rational
に分数の10進数表現を解析する最も簡単な方法は何ですか?
オンラインジャッジに追加のライブラリをインストールすることはできないため、外部依存関係の数も考慮する必要があります。あなたが欲しい
ありがとうございました!これは機能します。 – Rotsor
負の数を読み取れるようにするには、 'readSigned'を追加するとよいでしょう。' fst。 $ readSigned readFloat "-3.14" :: Rational' – newacct