귀하는 손님 이십니다
로그인
회원가입
  
  델마당 공식 은행계좌
  하나은행 227-910235-83607
  예금주 이상국(운영진)
프로젝트 게시판
투표게시판
델마당소개
기초부터 활용까지! 델파이 교육 - 데브기어
 광고문의 :
강좌, 팁, 정보 강좌, 팁, 정보 입니다.
글내용 - 강좌, 팁, 정보
 숫자를 지수형태로 표현하려다 알아낸 팁입니다.
산소프트
(강한구)
2018-04-08 오후 2:04:25
카테고리: 팁
2664회 조회



등록된 파일이 없습니다.
아시는분은 다 아시는걸텐데, 
저는 이걸 몰라서 아래 내용처럼 질문을 올리려고 했습니다.

----질문-----

숫자 112.5 를 지수 형태로 출력시
Format('%e', [112.5]) 하게 되면 1.12500000000000E+002 이렇게 출력이됩니다.

엑셀에서 셀서식- 지수 로 선택후 자릿수를 설정할수 있습니다.
자리수 0: 1.E+02
자리수 1: 1.1E+02
자리수 2: 1.13E+02
자리수 3: 1.125E+02
 
엑셀처럼 표시하고 싶은데 어떻게 해야 할지 고민입니다.
포맷에 파라미터로 자릿수가 들어갈까요?
----여기까지---

여기까지 질문을 적다가 말고, 문득 - 설마 하고 떠올라서 직접 해보니 되더군요..

var
  d:double;
begin
  d:= 112.5;

  edit1.Text:= Format('%.0e', [d]);           //1.1E+002
  edit2.Text:= Format('%.1e', [d]);           //1.1E+002
  edit3.Text:= Format('%.2e', [d]);           //1.1E+002
  edit4.Text:= Format('%.3e', [d]);           //1.13E+002
  edit5.Text:= Format('%.4e', [d]);           //1.125E+002
  edit6.Text:= Format('%.5e', [d]);           //1.1250E+002
end;

몃가지를 더 붙여서 해봤는데 별로 달라지는건 없고, 저기까지 알아낸게 다 입니다.
0, 1, 2 의 경우엔 내부적으로 자리수때문에 안바뀌는것 같네요.
암튼 format 함수는 대단합니다..

혹시나 이거 찾느라 고생하실분 계실까봐 적어둡니다.

ps. 혹시 뒤에 002를 02로 바꾸거나 하는방법도 있으려나요?