0
在Haskell中如何打印不帶小數點的小數x當且僅當x是積分?請改善我的代碼如下:如何打印不帶小數點的小數點x當且僅當x是積分?
printFrac :: (Show a, RealFrac a) => a -> IO()
printFrac x = if x==fromIntegral (round x) then print (round x) else print x
在Haskell中如何打印不帶小數點的小數x當且僅當x是積分?請改善我的代碼如下:如何打印不帶小數點的小數點x當且僅當x是積分?
printFrac :: (Show a, RealFrac a) => a -> IO()
printFrac x = if x==fromIntegral (round x) then print (round x) else print x
以下情況如何?
printFrac :: (Show a, RealFrac a) => a -> IO()
printFrac x
| a == 0 = print b
| otherwise = print x
where (b, a) = properFraction x
測試:
λ> printFrac 1.0
1
λ> printFrac 1.1
1.1
λ> printFrac 1
1