본문 바로가기
프로그래밍

[자료형 형변환] 실수형과 실수형의 변환 명세 [쉬운 설명과 예시]

by 스텔라게이트 2023. 3. 25.

[자료형 형변환] 실수형과 실수형의 변환 명세

실수형과 실수형의 변환명세들을 사용할 수 있도록 관련 내용들과 예시를 익혀봅시다. 

실수형의 종류에 대해 먼저 알아보고 실수형 상수, 실수형 변환명세에 대해 알아봅시다. 

 

실수형의 종류

  • float  : 32비트
  • double : 64비트 
  • long double : 64비트, 96비트, 128비트 

비트 수가 많을 수록 다양한 수를 표현할 수 있습니다. 

반응형

실수형 상수 

소수점이 있으면 실수형 상수입니다. 

  • 11.15
  • 0.156
  • .622 

만일 소수점이 없다면 정수형 상수가 됩니다. 

예를 들자면 아래와 같습니다. 

  • 15는 정수형 상수 
  • 15. 실수형 상수
  • 15.0 실수형 상수 

실수형 상수의 지수 사용 

e나 E를 붙여 10의 몇 승이 곱해지는지 표기하는 방법 입니다. 

예를 들자면 아래와 같습니다. 

  • 12.34e1 : 12.34 * 10^1 = 123.4 
  • 12.34e-2 : 12.34 * 10^-2 = 0.1234
  • 12e1 : 12*10^1 = 120 (120이 실수형) 
    120이라면 정수형으로 보이지만 e1을 사용함으로써 결과값인 120은 실수형 상수로 인식 됩니다. 

실수형 상수의 자료형 

실수형 상수는 기본적으로 double형으로 float형 또는 long double형을 원하면 뒤에 f나 l을 추가하여 사용할 수 있습니다. 

 

실수형의 변환 명세 

실수형 변환 명세에 대하여 알아보겠습니다.

일단 크게 위와 같이 3가지 형태로 나눌 수 있습니다. 

1. float 형, 2. double 형, 3. long double형 그리고 각각의 형태에서 printf, scanf 일때마다 달라 아래와 같이 구분할 수 있습니다. 

반응형

flat형 -printf에서

%f : mmm.dddd (111.2222)의 상수형태 

%e, %E : 지수 표현 형태 

%g, %G : %f와 %e, %E 중에 적절한 형태 

flat형 -scanf에서 

%f, %e, %E, %g, %G 모두 사용 가능하나 구별은 되지 않음 

double형 

printf에서는 float형과 동일한 변환 명세 사용 

scanf에서는 %lf 와 같이 앞에 l("엘")을 추가 

통일성을 위해 printf에서도 %lf등을 사용하도록 추가 

long double형

%Lf와 같이 앞에 L을 추가 

 

 

실수형의 변환명세 (지정자) 

기존의 정수형 변환명세(지정자)에서 precision만 제외하고 나머지는 동일합니다. 

자세한 내용은 정수형 변환명서(지정자) ▼아래 링크 참조 

2023.03.25 - [IT] - [자료형 형변환] 정수형 정수형의 변환 명세 [쉬운 설명과 예시]

반응형

precision에서 %f, %e, %E 는 소수점 이하 자리수, %g, %G는 유효 숫자의 최대 개수를 의미합니다.                 

 

변환 명세 : flag, with, precision 

예) %+5.3d 

  • + : flag 
  • 5 : width 
  • 3d : [점 찍은 다음에 오는 숫자] precision 

또한 precision을 지정하지 않으면 %f, %e, %E는 소수점 6자리까지 출력이되는데요. 

그래서 3.6 같은 값을 %f로 출력하게 되면 3.6만 출력되는 것이 아니라 3.600000 으로 출력 되는 것 입니다. 

 

실수형 변환 명세(지정자) 예시

f를 사용할 경우, 소수점 4자리 까지 출력됨으로 (.4는 소수점 4자리) 

0.5000 4자리로 표현 됩니다. 

e를 사용할 경우, 0.5가 e로 표현되면서 0.5*e의 -1승 => 5.0000e-01이 표시됩니다.

(%12.4e 이므로 .4는 소수점 4자리 동일하게 표시 됩니다.)  

실수의 변환명세에 대하여 알아보았습니다. 

이상 [자료형 형변환] 실수형과 실수형의 변환 명세에 대하여 알아보았습니다. 

읽어주셔서 감사합니다. 

 

반응형

댓글