Haskell int를 ZERO로 String으로 전환하십시오
문제
int = 08 유형 변수가 있다고 가정 해 봅시다.이 this this this this int = 08을 어떻게 변환 할 수 있습니까?
예를 들어:
v :: Int
v = 08
show v
출력 : 8
출력이 "08"이되기를 원합니다.
이게 가능해?
해결책
당신이 계획하고있는 일에 따라 "08"을 문자열로 저장하고 값이 필요할 때만 int로만 변환 할 수 있습니다.
다른 팁
사용 Text.Printf.printf
:
printf "%02d" v
가져 오십시오 Text.Printf.printf
첫 번째.
변수의 08이 아닌 8 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
그만큼 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"
제휴하지 않습니다 StackOverflow