質問

私は= 08、int型の変数があると、どのように私は、先行ゼロを維持する文字列にこれを変換することができますか?

たとえばます:

v :: Int
v = 08

show v

出力:8

私は、出力が "08" になりたい。

このことは可能ですか?

役に立ちましたか?

解決

あなたがすることを計画している内容に応じて、あなたは文字列として「08」を記憶し、唯一のあなたが値を必要なときにint型に変換したい場合があります。

他のヒント

Text.Printf.printfを使用します:

printf "%02d" v

最初Text.Printf.printfをインポートすることを確認します。

その8、変数ではない08 のV の。はい、あなたはそれを08に割り当てられたが、それは理由厥8を受け取り、のショーの方法は、あなたが使用することができます8として、それを表示する<のhref =「https://stackoverflow.com/a/376982/1477667」 >仕事は周りMipadiするで与えます。

編集

テストの出力ます。

Prelude> Text.Printf.printf "%01d\n" 08
8
Prelude> Text.Printf.printf "%02d\n" 08
08
Prelude> Text.Printf.printf "%03d\n" 08
008

別のテストの出力ます。

Prelude> show 08
"8"
Prelude> show 008
"8"
Prelude> show 0008
"8"

私はあなたのポイントを得る願っています。

編集

別の回避策を見つけました。これを試してみて、

"0" ++ show v

printfの方法は、おそらく最高のですが、それはあなた自身の関数を書くことは簡単です。

show2d :: Int -> String 
show2d n | length (show n) == 1 = "0" ++ (show n)
         | otherwise = show n
次のように

作品ます:

Prelude> show2d 1
"01"
Prelude> show2d 10
"10"
Prelude> show2d 100
"100"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top