我有一些简单的功能
f :: Float -> Float
f x = x
Prelude> f 5.00
5.0
为什么不5.00
?我怎样才能做到这一点?
答案 0 :(得分:7)
如果您需要base
的内容,请使用showGFloat
:
> import Numeric
> showGFloat (Just 2) 1.99438 ""
"1.99"
> :t showGFloat
showGFloat :: RealFloat a => Maybe Int -> a -> ShowS
答案 1 :(得分:5)
您可以使用printf
printf "%.2f" (f :: Float)
答案 2 :(得分:0)
从 4.7.0.0 开始,可以使用 showGFloatAlt:
<块引用>这和 showFFloat 一样,除了小数点总是被保证,即使不需要。
旧的 showGFloat
的文档并没有说总是保证小数点。
(但我在我的系统中实际上没有看到任何区别:
$ ghci
GHCi, version 8.6.4: http://www.haskell.org/ghc/ :? for help
Prelude> import Numeric
Prelude Numeric> showGFloat (Just 2) 5.0 ""
"5.00"
Prelude Numeric> showGFloatAlt (Just 2) 5.0 ""
"5.00"
Prelude Numeric> showGFloat Nothing 5.0 ""
"5.0"
Prelude Numeric> showGFloatAlt Nothing 5.0 ""
"5.0"
我想知道为什么...)