2024. 3. 12. 10:24ㆍVB.NET/왕초보
금액을 표기할때는 일반적으로 천원 단위로 콤마를 넣어서 표기하게 된다. 금액뿐만 아니라 숫자가 천단위보다 클 경우에는 가독성을 위해서 콤마를 사용하는게 여러모로 좋다.
오늘은 이를 위해 VB.NET에서 어떤 기능을 지원하는지 하나씩 차근차근 알아보기로 하자.
간략한 예제를 위해 아래 두개의 변수를 선언하자.
Dim Val1 As Long = 100000, Val2 As Long = 30000000
Val1은 십만, Val2는 삼천만을 넣었다. 이 예제에서 구하는 최종 결과는 "Val1 = 100,000, Val2 = 30,000,000"로 아래 3가지 방법 모두 동일한 결과를 도출하게 된다.
1. String.Format()
Dim Format1 As String = String.Format("Val1 = {0:#,##0}, Val2 = {1:#,##0}", Val1, Val2)
String.Format은 아래 방법들을 알아내기 전까지 가장 보편적으로 사용되는 방법이었다. 여기서의 핵심은 {0:#,##0} 이 부분인데, 앞에 0 은 콤마 뒤의 첫번째 변수를 의미하고, 뒤에 #,##0 이 숫자에 천단위로 콤마를 찍어주는걸 의미한다. 숫자 포맷을 사용하지 않으려면 그냥 {0} 이라고 쓰면 된다.
다음의 {1:#,##0} 에서 앞에 1 은 콤마 뒤의 두번째 파라미터를 의미한다.
2. ToString()
Dim Format2 As String = $"Val1 = {Val1.ToString("#,##0")}, Val2 = {Val2.ToString("#,##0")}"
위 1번과는 조금 다른 형식으로 String.Format 대신에 $ 연산자로 문자열을 문자열 안에 변수를 직접 넣었다. $ 연산자에 대해서는 아래 문자열 관련 강좌를 참조하자.
여기서는 나름 특이하게 ToString()이 문자열의 형식을 지정할 수 있다. 일반적으로는 ToString()으로 문자열이 아닌 변수를 문자열로 변환해주는데, 변환하는김에 아예 포맷을 지정해서 변환이 가능하도록 만들었으니, 정말 많이 생각하고 만든 함수라는걸 알 수 있는 대목이다.
3. 보간
Dim Format3 As String = $"Val1 = {Val1:#,##0}, Val2 = {Val2:#,##0}"
오늘 강좌의 핵심이 여기에 있는데, 자세히 보면 위 1번과 2번을 교묘하게 섞어서 사용한 것처럼 보인다. $ 로 문자열을 만들었으며, {Val1:#,##0} 부분에서, 아예 변수 자체에 직접 포맷을 지정해줄 수 있게 되었다. VB.NET에서 문자열을 다루다보면 그 편리함에 자꾸만 $ 연산자를 사용하고 있는 자신을 발견하게 될 것이다.
마치며...
숫자에 천원 단위 콤마를 넣는 방법은 위의 방법들 외에도 CultureInfo, NumericFormatInfo 등 다양한 방법이 있지만, 결국 위의 3번 방법을 가장 많이 사용하게 된다. 숫자에 콤마를 넣는 기능은 실 생활에서 아주 많이 사용되는 기능이니 이번 기회에 확실히 숙지하고 넘어가도록 하자.
'VB.NET > 왕초보' 카테고리의 다른 글
[VB.NET] 문자열에서 원하는 내용 찾아내기 - 정규 표현식 (0) | 2024.07.12 |
---|---|
[VB.NET] OrElse 연산자가 뭐지? 첨보네 (1) | 2024.04.12 |
VB.NET XML 파싱 - XmlDocument 사용 (0) | 2024.02.21 |
VB.NET Rnd, Randomize, Random 랜덤값 난수 사용하기 (0) | 2024.02.20 |
VB.NET HTML 파싱 - XPath를 사용한 HtmlAgilityPack 예제 (1) | 2024.02.19 |