ハスケルにはsprintfに相当するものはありますか?Haskell printf to String
ダブル値を文字列に変換する必要があります。printf種類の関数を使用しないで別の方法がありますか?
Prelude> putStrLn myDoubleVal
1.7944444444444447e-2
私は何が必要かもしれない代わりに
Prelude> putStrLn . sprintf "%.2f" $ myDoubleVal
1.79
ハスケルにはsprintfに相当するものはありますか?Haskell printf to String
ダブル値を文字列に変換する必要があります。printf種類の関数を使用しないで別の方法がありますか?
Prelude> putStrLn myDoubleVal
1.7944444444444447e-2
私は何が必要かもしれない代わりに
Prelude> putStrLn . sprintf "%.2f" $ myDoubleVal
1.79
はい、Text.Printfモジュールにあり、それはちょうどprintf
と呼ばれています。それは(上記の例のように)String
を戻すことができるのですが、それはまた、印刷を行うI/O動作を戻すことができるのです、そうなるようにprintf
の戻り値の型は、過負荷になっていることを
> import Text.Printf
> let x = 1.14907259
> putStrLn . printf "%.2f" $ x
1.15
(注)実際にputStrLn
への呼び出しは必要ありません。
> printf "%.2f\n" x
1.15
Text.Printfたい:
主な問題は避けることです。
をチェックし、私はそれは同じ機能でIOと文字列の両方を出力します知りませんでした。 – Zhen
システムマジックタイプ: –
@Zhenタイプセーフなバージョンが関心のあるかもしれません:http://hpaste.org/79643 format(str。 " - " str。 "/"。int) "こんにちは!" "世界!" 123 –