2012-01-24 2 views
0

저는 프로그래밍에 초보자입니다.정수형 값에 double/float을 사용합니다.

저는 매우 기본적인 질문이 있습니다. "정수 유형 값에 대해 유형 변수를 두 번 사용할 수 있습니까?" 내 말은, 예컨대

float a = 2; 
double b = 3.2; 

+3

- 당신이 float's'의 poissible 사용만큼을 피하고한다 ''부동 소수점 연산 '(http://en.wikipedia.org/wiki/Floating_point#Floating-point_arithmetic_operations)에 대한 기본 사항을 이해할 때까지'이중 '으로 표시됩니다. – amit

+0

정수는 C 및 Java의 경우와 같이 5 대신 1/2 * 10 = 0과 같이 혼동을 일으킬 수 있습니다. 부동 소수점은 프로그래밍에서 배워야 할 것입니다. –

+1

나는 동의하지 않는다. 정수 의미론을 이해하는 데는 오버플로와 같은 모든 모서리 사례를 포함하여 최대 1 시간 정도 소요됩니다. 부동 소수점을 이해하기에 충분할 정도로 실수를하지 않는 것은 수학적 배경에 따라 며칠에서 수주 사이에 이루어지며 좋은 부동 소수점 코드를 작성하기에 충분할 정도로 이해하고 싶다면 (부동 소수점을 피하는 것뿐만 아니라) 나는 몇 달 또는 몇 년이 걸릴 것이라고 말하고 싶다. –

답변

4

네 감사합니다,하지만 당신은 정수를 저장하는 float를 사용하는 경우 정밀도의 손실이있다.

일반적으로 정수는 32 비트를 사용하여 숫자를 저장합니다. 즉, 약 20 억 (약)의 숫자를 저장할 수 있습니다.

그러나 float는 32 비트를 사용하여 소수점 앞뒤의 부분을 모두 저장하므로 정밀도를 저장할 공간이 충분하지 않습니다. float에는 20 억 개 이상의 숫자를 저장할 수 있지만 숫자가 클수록 잃을 정밀도가 더 높아집니다. 따라서 2134567891과 같은 숫자를 부동 소수점에 저장하면 2134567000과 같은 것으로 바뀌므로 부동 소수점을 사용하는 것은 좋지 않습니다 금액과 같은 정확한 숫자를 저장합니다.

좋은 소식은 double은 64 비트를 사용하여 숫자를 저장하므로 정수와 동일한 정밀도로 정수 값을 저장할 충분한 공간이 있으므로 double을 사용하는 한 너무 많은 문제가있다.

+0

@ Nick. 귀하의 답변에 감사드립니다. float 값을 정수 유형 값으로 더하거나, 곱하거나, 뺄셈하거나 나눕니다. integer 또는 float 값을 저장해야하는지에 대한 또 다른 질문이 있습니다. 왜 안되는지. 설명 해주십시오. 나는 그것의 아주 기본적인 질문을 안다. – AbdulAziz

+0

사실이 아니며'(float) 3 == 3'이며 보장됩니다. 일반적으로, IEEE 부동 소수점 타입은 '-2^M .. 2^M' 범위의 모든 정수를 저장합니다. 여기서'M '은 가수 비트의 수입니다. – jpalecek

+0

@ Nick 고마워. – AbdulAziz

0

float와 double 변수가 많은 부분이 없지만 정확하지 않은 것이 더 좋은 것은 아닙니다.

0

예, 두 배와 수레가 가질 수있는 정수 값 등 0, 1, 2, 3 등, ... 당신이 프로그램을 처음 사용하는 경우

관련 문제