Tad*_*Tad 4 double parsing haskell
GHC Haskell似乎需要在小数点前面加一个数字才能读取Double.这是代码:
main :: IO ()
main = do
let d1 = read "0.3" :: Double
d2 = read ".3" :: Double
print d1
print d2
Run Code Online (Sandbox Code Playgroud)
运行它会产生:
0.3
*** Exception: Prelude.read: no parse
Run Code Online (Sandbox Code Playgroud)
这是一个GHC错误还是一个主要限制?
(我尝试使用C,Javascript和MS Excel阅读".3",所有这些都可以成功解析".3"并将其理解为一个数字.我想我在我的其他方面看到了这个问题的影响程序,包括使用parseargs包读取命令行参数,并使用Yesod的MForms以html形式读取双打.)
是否有针对此问题的已知修复或解决方法?
Lee*_*Lee 17
来自Haskell的报告:
2.5数字文字
浮动文字必须包含小数点前后的数字; 这确保了小数点不会被误认为点字符的另一种用法
所以这是预期的行为.