수치를 포맷(서식 설정)했을 경우의 소수점 이하 표기에 대해서

3417 단어 VBAExcel.NET

TL;DR


  • Excel, VBA(VB6), .NET에서 소수점 이하의 표기를 아래에 정리합니다.
  • .NET에서 정수를 처리한 경우의 표기가 보다 자연스럽게 되어 있습니다.
  • 시스템에 따라 바람직한 표기는 다르다고 생각합니다만, .NET로 서식을 0.00 또는 0.## 를 지정하는 것이 대부분의 시스템에서는 좋은 선택이 되는 것은 아닐까요.
  • .NET에서 소수점 위치를 정렬하고 싶은 경우 : 0.00
  • .NET에서 소수점 위치를 갖출 필요가없는 경우 : 0.##

  • 단, 공백 채우기로 정렬하고 싶은 경우는 독자 처리가 필요합니다.


  • 환경


  • Excel 16.0.13127.20266 32비트(Office 365)
  • Visual Studio 2019 16.7.4
  • .NET Framework 4.7.2

  • 테스트 데이터




    테스트 데이터
    서식


    0
    0.00

    0.00
    0.00

    0.1
    0.00

    1
    0.00

    1.00
    0.00

    1.1
    0.00

    0
    #.##

    0.00
    #.##

    0.1
    #.##

    1
    #.##

    1.00
    #.##

    1.1
    #.##

    0
    0.##

    0.00
    0.##

    0.1
    0.##

    1
    0.##

    1.00
    0.##

    1.1
    0.##


    VBA(VB6)


    Format(1,"0.00")
    

    시스템에 따라서는 . , .1 , 1. , 0. 등의 표기에 위화감이 있어 문제가 되는 경우도 있다고 생각합니다.


    테스트 데이터
    서식
    결과


    0
    0.00
    0.00

    0.00
    0.00
    0.00

    0.1
    0.00
    0.10

    1
    0.00
    1.00

    1.00
    0.00
    1.00

    1.1
    0.00
    1.10

    0
    #.##
    .

    0.00
    #.##
    .

    0.1
    #.##
    .1

    1
    #.##
    1.

    1.00
    #.##
    1.

    1.1
    #.##
    1.1

    0
    0.##
    0.

    0.00
    0.##
    0.

    0.1
    0.##
    0.1

    1
    0.##
    1.

    1.00
    0.##
    1.

    1.1
    0.##
    1.1


    Excel





    VBA와 동일한 결과가 되었습니다.

    .NET


    String.Format("{0:0.00}", CDec("1"))
    

    형식으로 0.## 또는 #.##를 지정할 때 소수 부분이 없거나 0이면 결과가 다릅니다.

    시스템에 따라 이상적인 표기는 다르다고 생각합니다만, .NET로 정수를 처리했을 경우의 표기가 보다 자연스럽게 되어 있습니다.


    테스트 데이터
    서식
    결과
    VBA와의 차이


    0
    0.00
    0.00
    동일

    0.00
    0.00
    0.00
    동일

    0.1
    0.00
    0.10
    동일

    1
    0.00
    1.00
    동일

    1.00
    0.00
    1.00
    동일

    1.1
    0.00
    1.10
    동일

    0
    #.##
    ※길이 0의 문자열
    차이 있음

    0.00
    #.##
    ※길이 0의 문자열
    차이 있음

    0.1
    #.##
    .1
    동일

    1
    #.##
    1
    차이 있음

    1.00
    #.##
    1
    차이 있음

    1.1
    #.##
    1.1
    동일

    0
    0.##
    0
    차이 있음

    0.00
    0.##
    0
    차이 있음

    0.1
    0.##
    0.1
    동일

    1
    0.##
    1
    차이 있음

    1.00
    0.##
    1
    차이 있음

    1.1
    0.##
    1.1
    동일

    좋은 웹페이지 즐겨찾기