문제

나는 그것을 이해하고,다음과 같은 문:

print using "<0>#,##", 1234

출력:

1,234

는 말;선 영(는 아무도 없)및 다섯 사용할 수 있는 문자를 위한 다섯 가지 캐릭터리를 출력합니다.또 다른 문는 내가 이해입니다:

print using "<0>#####,#######", "12345678"L

출력:

00,012,345,678

다시 주어진 의미가 내의 이해 형식 문자;14 하기 위해 사용할 수 있는 문자의 자리,쉼표와 선도합니다.

내가 이해하지 못하는 것은 방법:

print using "<0>####,#######", "12345678"L

출력할 수 있습니다:

00,012,345,678

반드시는 하나 너무 많은 주요 영?반드시 그것이 있어야:

0,012,345,678

내가 볼 수있는 가끔 선도적인 제로 추가되 이상의 길이를 지정하는 경우 그렇지 않으면 출력으로 시작 선도하는 쉼표 같은 이 예에서는 다음과 같습니다.

print using "<0>###,#######", "12345678"L

생산

0,012,345,678

에도 불구하고 겉보기지 않은 예약에 충분한 공간입니다.하지만 이는 이전 예 버그에서 기본적인,또는 나는 뭔가요?

도움이 되었습니까?

해결책

처럼 보이는 버그입니다.그것은 보너스를 추가 주요 제 경우 <0>과 구분 기호 함께 재생할 수 있습니다.그 <0>어 1 위치입니다.

그것은 재현을 위해서 기본적인 1.3(오픈 vms8.3)1.7-000 에 오픈 vms8.4.내가 사용하는 작은 값을 테스트하지 않도록 하기 위해 혼란/상호작용으로 최대 정수의 크기는"십 숫자의 정밀한 장의 정수"기본 Ref 매뉴얼입니다.

Btw..좋은 사용의"id"L.Pre-을 먼저 모든(암시)변환 토론입니다.이동의 쉼표가 끝나의 시작###시퀀스를 피하는 암시하는 특정 위치입니다.

로(만-uggly)해결 방법을 사용할 수 있는 형식$(val,형식 문자열).그것은 동일한 문제이지만,프로그램을 얻을 것이 변화하는 조정 결과입니다.

$ cre tmp.bas
 1      OPTION TYPE = EXPLICIT, SIZE = INTEGER LONG, CONSTANT TYPE = INTEGER
        print using "<0>###,", 1234
        print using "<0>###,", 123
        print using "<0>###,", 12
        print using "<0>###", 1234
        print using "<0>###", 123
        print using "<0>###", 12
 Exit
$ bas tmp
$ link tmp
$ run tmp
1,234
00,123
00,012
1234
0123
0012
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top