Rot*_*sor 10 parsing haskell decimal rational-numbers
我一直在参加一个编程竞赛,其中一个问题的输入数据包括十进制格式的小数:0.75就是一个例子.
解析它Double是微不足道的(我可以用read它),但精度的损失是痛苦的.人们需要非常小心地进行Double比较(我没有),这似乎是多余的,因为Rational在Haskell中有一个数据类型.
当试图使用它时,我发现read一个Rational人必须提供以下格式的字符串:numerator % denominator,我显然没有.
所以,问题是:
解析分数的十进制表示形式的最简单方法是什么Rational?
还应考虑外部依赖项的数量,因为我无法在在线评判中安装其他库.
Yit*_*itz 18
你想要的功能是Numeric.readFloat:
Numeric Data.Ratio> fst . head $ readFloat "0.75" :: Rational
3 % 4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3294 次 |
| 最近记录: |