인치를 쓰는 미쿡놈들.

2015. 5. 14. 16:08Coders

그렇게 좋아하는 것도 아니지만, 미국이란 나라를 싫어하는 것 또한 아닙니다.

정치적 성향은 약간 좌측이긴 하지만, 종북은 아니죠.


아메리카여 영원하라! 파이팅 USA! 김정은 개새끼!


이야기가 좀 샜습니다.


본론으로 돌아와서. 다음 링크를 보시죠.


http://www.vbforums.com/showthread.php?251996-PaperSize-to-millimeters-(RESOLVED)


저 또한, 저 솔루션은 이것저것 하다가 찾았습니다. 머리가 굳었는지, PaperSize 라는 클래스의 높이, 넓이 값이  1/100 인치 단위로 되어 있다 해서 모골이 송연해 지면서, 아 어찌 계산을 해야지? 하는 생각에 연습장에 써 가면서 얻은 값이 리턴값에 0.254를 곱하면 됩니다. 자세한 설명은 생략.. 센티미터로 환산하기 위해선, 0.0254를 곱하면 되겠죠.


그런데 그런 식으로 디버깅 문자열을 찍어 보면, A4용지는 다음과 같이 나옵니다.

A4 : 210.058 * 296.926


제가 알기로, A4용지의 규격은 210mm, 297mm 입니다. 영점 몇의 오차가 발생 하게 되죠.

문제는, 저걸 화면에 찍어줘야 하는 난 어쩌란 말인가요. 각 용지 규격마다 사이즈를 그냥 갖고 있어야 하는 걸까요? 아오 스트레스. 저는 저걸 또 실제 프린터의 DPI (Dots per Inch : 아오 이거도 인치당 들어가는 점의 갯수네요.)에 따라 또 계산을 해야 하죠.


대충, 밀리미터 단위 사이즈 정보가 포함된 프린트 용지 리스트를 찍어 보자면, 다음과 같이 대충 Math 함수를 통해 반올림 처리를 해야 할 것으로 보입니다.

PrintDocument pd = new PrintDocument();
foreach (PaperSize pSize in pd.PrinterSettings.PaperSizes)
{
	System.Diagnostics.Debug.WriteLine(
		string.Format("{0} ({1}mm*{2}mm)", pSize.PaperName,
			Math.Round(pSize.Width * 0.254), Math.Round(pSize.Height * 0.254)));
}


뭐 아직까지도 우리 역시 모니터나 TV 의 사이즈를 이야기 할 때 거의 인치로 이야기를 하고, 땅 넓이를 이야기 할 때에도 제곱미터 대신에 "평"을 쓰고는 하죠.


에이... 뭐 투덜댈 게 아닌가 싶기도 합니다만.

프린터 관련 코딩을 하다가 용지 사이즈가 인치로 되어 있다는 사실에 깜놀하여 글을 쓰게 되었습니다.


아무튼.


글을 하나 보시죠.

http://www.science.go.kr/boardRead.bs?dataSid=3536&boardId=SCI_THEMELIFE

읽기 싫은 분은, 위 글 내용중 첫 부분.

지난 90년대 말. 미국 NASA가 지난 1999년 쏘아올린 화성기후 탐사위성은 그해 9월 화성 대기권 근처에서 너무 낮은 고도로 비행하다가 결국 화성 대기권에 부딪혀 파괴돼 추락했다. 이 같은 실패들이 왜 일어났을까? 바로 도량형의 혼선에서 비롯됐다.


환산표는 요 링크에 있네요.

http://www.ooli.co.kr/diy/data5/no5-005.htm


요 사진 출처는 위키피디아.