문제

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"
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top