0
A
回答
5
没有0000
类型Int
这是不同于0
,所以这是不可能的。这不是Haskell所特有的:你会看到任何其他语言与数字类型相同(即基本上任何语言)。
但是,当你说:“结果是0
”,你应该更正确地说,结果打印为0
,一般你将有功能允许您打印相同的值0000
,但再次荣获” t区分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,int转换为字符串
- 2. 的Python int转换成字符串保持零
- 3. 将int(数字)转换为前导零的字符串? (4位)
- 4. 将int转换为前导零的字符串
- 5. java将字符串转换为int并删除尾随零
- 6. C#将int转换为带填充零的字符串?
- 7. 转换INT [] []将字符串
- 8. 无法将零转换为字符串
- 9. int不能转换为字符串
- 10. 将字符串转换为int数组
- 11. 将字符串转换为int []
- 12. 从Java字符串转换为int
- 13. 将字符串转换为空值int
- 14. 将字符串转换为int阵列
- 15. 从字符串转换为int?
- 16. 如何将字符串转换为int
- 17. 如何将字符串转换为Int?
- 18. 转换字符串值为int
- 19. 从字符串转换为int
- 20. 如何将字符串转换为int?
- 21. 字符串转换为int值?
- 22. 转换为int分割字符串
- 23. 将字符串转换为int在C++
- 24. 无法从字符串转换为Int
- 25. SSRS将Int转换为字符串
- 26. int从行转换为字符串
- 27. LINQ将字符串转换为int
- 28. 而将字符串转换为int后
- 29. 转换0x0000F85D字符串为int C#
- 30. C:将int []转换为字符串
,什么是0000? – Redu
你为什么要这样? –
@Redu 0000是一个Int –