我一直在参加编程竞赛 http://codeforces.com/contest/105 and 问题之一 http://codeforces.com/contest/105/problem/A' 输入数据包括十进制格式的小数:0.75
就是一个例子。
将其解析为Double
是微不足道的(我可以使用read
为此),但精度的损失是痛苦的。需要非常小心Double
比较(我没有),这似乎是多余的,因为有人Rational
Haskell 中的数据类型。
当尝试使用它时,我发现read
a Rational
必须提供以下格式的字符串:numerator % denominator
,显然我没有。
所以,问题是:
将分数的十进制表示解析为最简单的方法是什么Rational
?
外部依赖项的数量也应该考虑在内,因为我无法将额外的库安装到在线判断中。
你想要的功能是Numeric.readFloat
:
Numeric Data.Ratio> fst . head $ readFloat "0.75" :: Rational
3 % 4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)