我一直在参加一个编程竞赛,其中一个问题是输入数据包括十进制格式的小数:0.75
就是一个例子。
将其解析Double
为微不足道的(我可以使用read
它),但是精度的损失是痛苦的。比较时需要非常小心Double
(我不是),这似乎是多余的,因为Rational
在 Haskell 中有数据类型。
在尝试使用它时,我发现必须read
提供Rational
以下格式的字符串:numerator % denominator
,显然我没有。
所以,问题是:
将分数的十进制表示解析为 的最简单方法是什么Rational
?
外部依赖的数量也应该考虑在内,因为我无法在在线判断中安装额外的库。