기타 강좌

3-4-나.실수형 상수

소수부를 가지면 실수형 상수로 인식된다. 다음이 실수형 상수의 예이며 실생활에서 직접 사용하는 표기법이므로 전혀 어렵지 않을 것이다.

 

-3.14

123.456

5.0

 

5.0의 경우 같은 값이라도 5라고 적으면 정수형 상수가 된다. 실수형 상수임을 명확히 나타내려면 5.0이라고 적든가 아니면 0은 생략하고 5.이라고 적어야 한다. 이런 식으로 소수점을 기준으로 왼쪽에 정수부 오른쪽에 소수부를 적는 방법을 고정 소수점 표기법이라 한다. 실수형 상수 표기에 부동 소수점 표기법을 사용할 수도 있다.

 

3.14e-1

1.23456e2

 

e를 기준으로 왼쪽에 가수 오른쪽에 지수를 적는다. 실수는 내부적으로 모두 부동 소수점 방식으로 기억되지만 상수를 표현할 때는 고정 소수점, 부동 소수점 표기법을 모두 사용할 수 있다. 정수 상수 뒤에 크기와 부호를 나타내는 U, L 등의 접미사를 붙일 수 있듯이 실수형 상수 뒤에도 정확한 크기를 명시하는 F 접미사(소문자도 가능)를 붙일 수 있다. 접미사가 없으면 double형 상수로 인식되며 F를 붙이면 float형으로 인식되고 L을 붙이면 long double형이 된다. 다음 예제는 실수형 값을 출력하는 여러 가지 방법을 보여준다.

 

: float

#include <Turboc.h>

 

void main()

{

     double d;

     d=123.456;

 

     printf("고정 소수점 : %fn",d);

     printf("부동 소수점 : %en",d);

     printf("일반형 : %gn",d);

}

 

실수형 변수 d를 선언하고 이 변수에 123.456이라는 실수 상수를 대입했다. d=1.23456e2;와 같이 부동 소수점 표기법으로 대입해도 결과는 같다. 실수를 표현하는 방법이 여러 가지가 있기 때문에 printf의 실수에 대응되는 서식도 여러 가지가 있다. %f 서식은 고정 소수점으로 실수를 출력하며 %e 서식은 부동 소수점으로 출력한다. %g 서식은 %f와 %e 중 더 짧고 간단한 방법을 자동으로 선택한다. 실행 결과는 다음과 같다.

 

고정 소수점 : 123.456000

부동 소수점 : 1.234560e+002

일반형 : 123.456

 

앞 절에서 배운대로 %와 서식 사이에 총 자리수나 소수점 이하 자리수를 지정할 수도 있다. 소수점 이후 두 자리까지만 출력하고 싶다면 %f 대신 %.2f 서식을 사용하면 된다. 이 경우 소수점 이하 3번째 자리에서 반올림되어 123.46이 출력될 것이다.

실수는 정수에 비해 소수점 이하를 표현할 수 있고 천문학적인 큰 수를 다룰 수 있는 장점이 있지만 구조가 복잡하기 때문에 굉장히 느리다. 요즘 CPU는 부동 소수점을 보조 프로세서가 직접 처리하므로 훨씬 더 빨라졌지만 그렇지 못한 시스템에서는 정수에 비해 대략 10배 정도 느리다. 그래서 꼭 필요한 경우가 아니면 잘 사용되지 않으며 불가피한 경우라도 정수형으로 바꾸어서 다루는 경우가 많다. 예를 들어 소수점 이하 두 자리까지의 정확도를 가지는 백분율이 필요하다면 아예 100을 곱해 만분율을 사용하는 것이 더 유리하다.

TAG •

List of Articles
분류 제목 글쓴이 날짜 조회 수
Vegas Pro 베가스 강좌 목록 아방스 2017.09.28 886
파이널컷X 파컷 강좌 목록 아방스 2017.06.18 757
메이킹 영상 [매이킹 영상] CASTLEVANIA: LORDS OF SHADOW 2 아방스 2014.07.09 790
어도비 프리미어 프리미어 cc 2014 새로운 기능 - Premiere Pro CC – April 2014 – New Features 아방스 2014.07.07 1443
기타 에러 메세지를 텍스트로 복사하기 1 file 값싼뭉크 2014.04.26 874
기타 [RPGXP] 기술 데이터 읽기 실패 해결법 2 file 맵만드는중.. 2014.02.17 1719
기타 윈도우 게임을 휴대폰이나 태블릿으로 돌려보자 폰으로컴퓨터하기 2014.01.21 1428
기타 [루비] 프로그래밍 공부하는 법 1 자연철학의수학적원리 2013.10.25 1724
기타 [루비][네트워크] 다른 컴퓨터에서 명령어 받아서 실행후 결과 돌려주는 서버 자연철학의수학적원리 2013.10.25 1736
기타 [루비][네트워크][GUI] 서버에 명령어 보내서 실행결과 얻는 클라이언트 file 자연철학의수학적원리 2013.10.25 1471
기타 [루비][네트워크] 간단한 서버테스트하기 file 자연철학의수학적원리 2013.10.25 1419
기타 [루비][네트워크] 간단한 서버 만들기 자연철학의수학적원리 2013.10.25 1511
기타 [루비][GUI] 텍스트입력박스와 버튼, 이벤트 연결 file 자연철학의수학적원리 2013.10.25 1432
기타 [루비][GUI]텍스트입력상자 만들기 자연철학의수학적원리 2013.10.25 1345
기타 [루비][GUI] 버튼에 이벤트 연결하기 file 자연철학의수학적원리 2013.10.25 1370
기타 [루비][GUI] 버튼 만들기 file 자연철학의수학적원리 2013.10.25 1440
기타 [루비][GUI]윈도우 창을띄우기 file 자연철학의수학적원리 2013.10.25 2070
기타 [루비] 한글 사용하기 2 자연철학의수학적원리 2013.10.25 1475
시네마4D Navié Plants & Effex Krakatoa Edition v2.00.20 For Cinema 4D R14 – R15 – Win64 file 아방스 2013.09.24 1951
시네마4D Jawset TurbulenceFD v1.0 Rev 1160 For Cinema 4D – Win64 file 아방스 2013.09.24 1410
에프터 이펙트 에펙 글자 등장 효과 - Create a Stormy, Electric Type Reveal 3 file 아방스 2013.07.05 4668
어도비 프리미어 [어도비 프리미어 CS6] 흔들림 보정 어렵지 않아요~. file 아방스 2013.03.13 11551
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Next
/ 19