개미들을 위한 퀀트 자동 매매 프로그램 개발자 블로그입니다. 프로그래밍과 퀀트 투자를 합니다.

방구석퀀트

네이버카페 : 방구석 퀀트 놀러오세요^^ https://cafe.naver.com/conerquant 가입해 주세요.

2021년 9월 13일 월요일

[C#] DataGridView에서 ColumnType이 Double 인 경우 소수점 2자리까지 0 으로 채우기

방구석지니의 계좌평가현황에서 "손익률(%)"을 표시하는 컬럼이 있는데 손익률이다 보니 소수점 2자리까지만 표현하고 있는데 아래 그림처럼 자리수가 맞지 않게 나와 가독성이 떨어진다는 회원님의 개선 요청이 있었다.



일반적으로 소수점 2자리까지 0으로 채워서 표현하는 방법은 아래와 같다.


double a=2.3

string a_str = a.tostring("N2");

// a_str은 "2.30"


이 방법을 사용하면 소수점 2자리까지 모두 0으로 채워져서 예쁘게 나와야 하는데 아무리해도 반영이 되지 않았다.


알고 보니 [손익률(%) 컬럼의 coulmnType 이 Double 로 설정되어 있어. 0을 채운 소수점 2자리 실수를 저장해도 다시 원 실수로 바뀌어버리는 문제가 있었다. 이 컬럼의 타입을 string으로 바꾸면 해결되는 문제지만 이미 이 컬럼의 값을 이용해 손절이나 익절 등에서 사용하고 있어서 자치 다른 기능들에 장애가 발생할 수가 있어 쉽게 바꿀수가 없었다.


그래서 찾아낸 방법이 해당 컬럼의 Format을 아래와 같이 설정하는 것이다.


this.dgv.Columns["손익률(%)"].DefaultCellStyle.Format = "N2";


그럼 아래와 같이 아주 깔끔하게 손익률이 표시되는 것을 확인할 수 있다.


이 간단한 방법을 찾아 오늘도 삽질을 했다...


댓글 없음:

댓글 쓰기

가장 많이 본 글