21

Haskellにsprintfに相当するものはありますか?

double 値を文字列に変換してフォーマットする必要があります。

printfのような関数を使用しない別の方法はありますか?

主な問題は避けることです:

Prelude> putStrLn myDoubleVal
1.7944444444444447e-2

代わりに、これが欲しい:

Prelude> putStrLn . sprintf "%.2f" $ myDoubleVal
1.79
4

3 に答える 3

51

はい、それはText.Printfモジュールにありますprintf

> import Text.Printf
> let x = 1.14907259
> putStrLn . printf "%.2f" $ x
1.15

の戻り値の型printfはオーバーロードされているため、String(上記の例のように) を返すことができますが、印刷を行う I/O アクションを返すこともできるため、実際には の呼び出しは必要ありませんputStrLn

> printf "%.2f\n" x
1.15
于 2013-03-22T09:03:07.557 に答える
3

Text.Printfが必要かもしれません。

于 2013-03-22T09:02:52.513 に答える