• c#으로 c++ 헤더 속의 상수들 이용하기

    c#을 이용하다 보면 윈도우즈 제어를 위해 c++ 메떠드를 써야 할 일들이 많다. 근데 레퍼런쓰에는 상수들의 이름과 설명만 나와 있고 그 값은 나와 있지 않은 경우들이 많다. c++ 개발 환경에서는 그냥 상수 이름만 입력하면 되니까 실제 16진수 값은 알 필요가 없지만 c#에서는 일일이 선언하고 초기화해 줘야 한다. c++ 상수들은 헤더 파일들 안에 담겨 있는데 이걸 보기…

  • [c#] 실수형을 반환하는 math.round와 숫자 타입의 형 변환

    Rounds a value to the nearest integer or to the specified number of fractional digits.– Math.Round Method math.round는 분명히 정수를 반환하지만 이게 정수형으로 반환한다는 의미는 아니다. 이 메떠드는 정수를 double이나 decimal 같은 실수형으로 반환한다. 왜 이럴까? int, double, decimal에서 신뢰할 수 있는 자리수는 모두 다르기 때문이다. 더 구체적으로는 int의 그것이 제일 작아서 그렇다. 큰 자리수에…

  • c# ListBox 아이템의 문자열 정렬(align)하기

    쎌의 문자열을 가운데에 두려면 번거롭지만 쎌 출력을 직접 제어해야 한다. 방법은 간단하다. 쎌과 문자열의 폭들을 각각 구한 뒤 이들의 차이를 반으로 나눈 지점에서부터 출력을 시작하면 된다. 그러나 구현을 하는 데에 있어서는 몇 가지 주의해야 할 것들이 있다. 우선 모든 단위들은 정수가 아니라 실수다. 따라서 정수로 구한 다음에 반올림을 하거나 형 변환을 하지 않도록 유의한다. 열이…

  • c# for와 foreach 성능 비교

    foreach는 편하지만 느리다. 다섯 번 평균하니 for가 19, foreach가 24 나왔다. 그렇다고 for가 능사는 아니다. dictionary에서 루프를 돌리려면 foreach를 써야 한다.

  • [c#] 파일 존재 확인 방법 – File.Exists

    파일을 읽으려 하는데 그 대상이 없으면 오류로 처리되어 멈춘다. try ~ catch 구문으로 예외 처리를 할 수 있지만 이 방법은 원인을 알 수 없거나 작동이 멈추는 상황을 절대적으로 막아야 하는 경우에만 최후의 수단으로 써야 한다. 특히 이 구문은 부하가 크기 때문에 루프에서는 이용하지 않는 게 좋다. 제일 좋은 방법은 File.Exists 메떠드를 이용하여 조건문으로 사전 처리를…

  • 주식 전 영업일 가격과 기준 가격의 차이

    전 영업일 가격은 말 그대로다. 기준 가격은 상한가나 하한가 등을 계산하는 데에 기준이 되는 가격이다. 대부분의 경우 이들은 같다. 그러나 전 영업일 가격이 존재하지 않거나 이용하기에 적당하지 않은 때 새로 계산하여 기준 가격을 만든다. 예를 들면 오늘 상장하여 전 영업일에 거래될 수 없었던 종목, 전 영업일에 거래가 전혀 일어나지 않았던 종목, 액면 분할이나 배당락 등으로…

  • 백척간두진일보 오류와 원문

    흔히 백척간두진일보라 하는 말은 景德傳燈錄에 쓰인 招賢大師의 게송에서 비롯된다. 하지만 원문은 다르며 아래와 같다. 百丈竿頭不動人 雖然得入未為真 百丈竿頭須進步 十方世界是全身백 길 길이 장대 위의 흔들림 없는 사람은 비록 깨달음에 분명 들어선 것이긴 하나 완전하게 벗어난 것은 아니니그 자리에서 마침내 더 나아갈 때 세상에 존재하는 모든 것들을 있는 그대로 볼 수 있게 되리라. 이미 같은 시대의 책인 오등회원에…