2012-11-26 1 views
-2

지금 당장 C#을 배우십시오. 그들은 수레를 사용하거나 두 배로 수있을 때 누군가가 정수를 사용하는 이유C#에서 수레 또는 복식을 사용할 수있을 때 정수를 사용해야하는 이유는 무엇입니까?

나는 ..하지 않는

수레는 왜 누구도 평범한 구식 정수를 사용하여 귀찮게 것/추가 정수 및 소수를 뺄 것인가?

float 또는 double과 같이 보이는 것은 Integer가 처리 할 수있는 보너스로 할 수있는 모든 작업을 처리합니다. 숫자도 ..

고마워요!

+9

당신은 * 많은 * 부동 소수점의 단점에 대해 배울 수있는 값! 클래식 [모든 컴퓨터 과학자가 부동 소수점 연산에 대해 알아야 할 사항] (http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html)부터 시작하십시오. –

+1

정수를 사용한 계산이 부동 소수점 숫자보다 빠릅니다. –

답변

1

here에서 볼 수 있듯이 각각 다른 유형에는 각각 크기가 있습니다.

예를 들어, 큰 데이터베이스로 작업 할 때 int 또는 float은 필요한 크기를 두 배로 늘릴 수 있습니다.

0

몇 가지 이유가 있습니다. 성능, 메모리, 소수 자릿수를 보지 않으려는 욕망 (형식 문자열로 재생하지 않고도).

0

데이터를 저장하는 데 다른 양의 비트를 사용하기 때문에 데이터 유형이 다릅니다.

일반적으로 정수는 double보다 적은 메모리를 사용하므로 가능한 가장 큰 데이터 형식을 사용하지 않습니다.

http://en.wikipedia.org/wiki/Data_type

7

주된 이유는 우리가 흔히 정수 분수 대신 고정 정밀도의 소수를 사용하는 것을 선호 같은 이유입니다. 합리적 분수의 경우, (1/3) 배 3은 항상 1입니다. (1/3) 더하기 (2/3)은 항상 1입니다. 1/3 배 2는 (2/3)입니다.

왜? 정수 분수는 정확하기 때문에 정수와 똑같습니다.

고정 된 정밀도 실수로 - 너무 예쁘지 않습니다. (1/3)이 .33333이면 3 (1/3)은 1이 아니며 (2/3)이 .66666이면 1/3 + (2/3)이 하나가되지 않습니다. 그러나 (2/3)이 .66667이면 (1/3) 2는 (2/3)이 아니고 1 - (1/3)은 (2/3)이되지 않습니다.

물론 더 많은 장소를 사용하여 문제를 해결할 수 없습니다. 10 진수의 숫자는 정확히 (1/3)을 나타낼 수 없습니다.

부동 소수점은 고정밀 소수점 실수 형식과 마찬가지로 고정 소수점 실수 형식입니다. 그것은 항상 당신이 기대할 수있는 순진한 규칙을 따르지 않습니다. 클래식 용지 What Every Computer Scientist Should Know About Floating-Point Arithmetic을 참조하십시오.

질문에 대답하려면, 가능한 한 항상 부동 소수점 숫자를 사용해야하며, 근사값 일 때만 정수를 사용해야합니다. 그리고 부동 소수점 수는 정밀도가 제한되어 있고 두 부동 소수점 수를 비교하여 부동 소수점 수를 비교하면 예상하지 못한 결과가 발생할 수 있음을 기억해야합니다.

0

Floating point : 컴퓨팅

는 부동 소수점 값은 다양한 범위를 지원하는 방식으로 실수에 근사치를 표현하는 방법을 설명한다.일반적으로 숫자는 고정 된 수의 유효 자릿수로 표시되고 지수를 사용하여 크기가 조정됩니다.

Integer : 컴퓨터 과학

정수 일체형 데이터 유형 수학 정수의 일부 제한된 서브 세트를 표현하는 데이터 형식의 데이텀이다.

따라서 정밀도는 하나의 인수입니다.

0

몇 가지 이유가 있습니다. 먼저 사람들이 이미 말했듯이, double은 64 비트 숫자 값을 저장하고 int는 32 비트 만 필요로합니다.

플로트는 다른 경우입니다. int와 float 모두 32 비트 숫자를 저장하지만 float는 덜 정확합니다. float 값은 최대 7 자리까지 가능하지만 그 이상은 근사치입니다. 더 큰 숫자가 있거나 소수점 이하의 정수 값만 의도적으로 만들려는 경우가 있습니다. int는 길입니다. 정밀도 상실에 신경 쓰지 않고 더 넓은 범위의 값을 허용하려는 경우 대신 float를 사용할 수 있습니다.

0

정수를 사용하는 주된 이유는 메모리 소비와 성능입니다.

  1. 복식 (INT 대 (32B)에 비해)는 64B의 메모리 블록에 저장된 대부분의 경우에 계산을 필요
  2. 복잡한 표현 (실제 값의 경우 근사치에서) 표현 다소 복잡한 표준을 사용 사마귀와 지수.
  3. 대부분의 경우 부동 소수점 연산을위한 전용 코 프로세서 사용이 필요합니다. 보완 및 시프 팅은 산술 연산의 속도를 높이기 위해 사용할 수 있습니다.
  4. 그것은, (자연) 색인 배열에 대해 같은 정수를 사용하는 것이 더 적합합니다 모든 할 필요가있는 경우 등 또한

를 계산, 분할의 알림을 얻기 위해, 루프 사용 사례

  • 수 이것의 유형을 사용하여 실제 숫자를 나타 내기 위해 더 많은 오류가 발생하기 쉽습니다.

  • 0

    대부분의 답은 수학 개념을 직접 다루고 있습니다. 정수를 사용하는 데 전적으로 계산상의 이유가 있습니다. 몇 가지 마음에 점프 :

    1. 루프 카운터, 네 나는 for 루프에서 십진법/이중 수 있지만 정말 복잡한 정도가 필요합니까 알아?
    2. 내부 열거
    3. 배열 인덱스
    관련 문제