假设我有一个Int = 08类型的变量,如何将其转换为String保持前导零?
例如:
v :: Int v = 08 show v
输出:8
我希望输出为"08".
这可能吗?
用途Text.Printf.printf
:
printf "%02d" v
确保先导入Text.Printf.printf
.
它的8,而不是08变量v.是的,你给它分配了08但它收到8.这就是显示方法显示为8 的原因.你可以使用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