0
A
答えて
5
0
とは異なるInt
の0000
が存在しないため、これはできません。これはHaskellに固有のものではありません。数値型(つまり、基本的にはどの言語でも)の他の言語でも同様です。
しかし、あなたは「結果は0
である」と言うとき、あなたはより正確に「その結果はが0
として印刷されており、一般的にあなたが0000
と同じ値を印刷できるようにする機能を持っていますが、再び勝ったと言うべきです0
と0000
の整数値を区別します。
この情報を保持したい場合は、別のタイプが必要です。どちらが必要なのかによって決まります。例えば。それは
data Digits = Digits [Int]
リストの各要素は0
から9
に(または直接[Int]
を使用する)とすることができます。または
data IntWithPaddingZeros = IntWithPaddingZeros { value :: Int, paddingZeros :: Int }
等
2
あなたはMyInt
のような新しいデータ型を定義したり、Mint
を言うと、それを表示するためにどのようにコンパイラに指示する必要があります。
data Mint = M Int
instance Show Mint where
show (M n) = "000" ++ show n
*Main> M 7
0007
もちろん、これは非常に簡単な例です。整数が1桁以上であれば、追加するゼロの数を推測するより概念的な関数を思いつくかもしれません。
OKのは、もう少し私たちの示す機能を開発してみましょう...
data Mint = M Int
instance Show Mint where
show (M n) = replicate (3 - (round . (logBase 10) . fromIntegral) n) '0' ++ show n
*Main> M 133
0133
*Main> M 22
0022
*Main> M 0
0000
*Main> M 1453
1453
関連する問題
- 1. 文字列をintまたはlongに変換しますが、先行ゼロを保持します
- 2. ゼロを含むバイトバッファを文字列に変換する方法
- 3. TypeError例外:ゼロの無暗黙の型変換文字列
- 4. 変換文字列
- 5. 変換文字列
- 6. 変換文字列*
- 7. 変換文字列
- 8. 変換文字列
- 9. 変換::文字列&
- 10. 変換文字列
- 11. 変換文字列
- 12. 変換文字列
- 13. 変換文字列
- 14. 変換文字列
- 15. XSL変換時に特殊文字$を保持する
- 16. 文字を配列に保持する
- 17. 先行ゼロの色の16進数を文字列に変換する
- 18. int(数値)を先行ゼロの文字列に変換しますか? (4桁)
- 19. ハッシュ変換の文字列
- 20. 文字列の変換HIVE
- 21. 文字列エスケープ変換vb.net
- 22. 文字列変換のセグメンテーションフォルト?
- 23. C#文字列変換
- 24. 変換文字列が
- 25. 変換は、文字列vb.net
- 26. バッシュ文字列変換
- 27. 文字列変換issure
- 28. 文字列変換のC#
- 29. 変換のXML文字列
- 30. にpreg_replace、文字列変換
をし、0000は何ですか? – Redu
なぜそれが欲しいのですか? –
@Redu 0000はInt –