무엇이 부동점수입니까?

(지난주 BaseClass newsletter)
부동점은 이진 형식으로 숫자를 저장하는 방법이다.그것은 우리로 하여금 대량의 음식을 저장하게 할 수 있다
고정된 공간량을 사용하여 값을 계산하다.

내가 왜 신경 써야 돼?


생각해 본 적 있습니까?
  • 0.1+0.3은 항상 0.4과 같지 않습니까?
  • 우리는 어떻게 2진법으로 비정수를 저장합니까?
  • 5분 이내:


    너는 우리가 어떻게 2진법으로 숫자를 표시하는지 잘 알고 있을 것이다.
    각 2를 대표하는 멱은 조합을 통해 우리는 모든 정수를 생성할 수 있다.

    그러나 우리가 비정수적인 것을 표시해야 할 때, 예를 들어 2.5은 어떤 일이 일어날까요?
    여덟 분을 둘로 나눕시다.
    우리는 소수점 앞의 숫자를 표시하기 위해 '왼쪽' 부분을 사용할 것이다. (우리의 예는 2)
    오른쪽 부분은 소수점 뒤의 점수(0.5, 본 예에서 0.5)를 나타낸다.
    이 시스템에서 2.50 0 1 0 1 0 0 0으로 표시됩니다.

    우리는 지금 점수를 표시할 수 있지만, 우리는 많은 범위를 잃었다.
    예를 들어 우리는 이런 격식으로 16.0을 표시할 수 없다.주문한 왼쪽에 충분한 자리가 없다.
    우리는 계속해서 더 많은 숫자를 추가해서 더 큰 숫자를 저장할 수 있지만, 이러한 형식은 여전히 매우 제한되어 있다.
    때때로 우리는 매우 큰 숫자를 저장하려고 하는데, 이런 상황에서 우리는 왼쪽에 더 많은 자리가 있기를 바란다.다른 때 우리는
    예를 들어 아주 작은 점수를 저장하는 경우 왼쪽은 더 적은 위치, 오른쪽은 더 높은 정밀도를 필요로 한다.
    이것이 바로 부동점 연산이다.더 큰 값을 표시하기 위해 점 이동을 허용하는 숫자를 저장하는 방법
    값의 범위입니다.
    부동 소수점 값의 표준은 "IEEE 754"라고 하는데 32비트와 64비트 부동 소수점(또는 "부동 소수점") 값을 정의한다.
    각 32비트 또는 64비트 부동점은 세 부분으로 분할됩니다.
  • 첫 번째는'기호'를 대표한다.0은 플러스, 1은 마이너스
  • 그 다음 8위는'지수'로 불린다.
  • 마지막 23위는 "끝"
  • 이 세 값은 부동점이 나타내는 숫자를 나타내는 공식에서 사용됩니다.

    너는 이 공식을 이해할 필요가 없다. 단지 이런 저장 방식을 알기만 하면
    숫자는 우리가 더 큰 범위를 대표할 수 있다는 것을 의미한다.
    지수 값을 크게 하거나 작게 함으로써 우리는 매우 작은 점수나 매우 작은 점수를 나타낼 수 있다
    대량이었어
    이것이 바로 왜 그것을'부동점'이라고 부르는가이다. 그것은 우리의 최초의 예처럼 고정점이 없다.대신
    지수의 크기에 따라 부동 또는 이동을 클릭합니다.

    반올림 오차


    몇몇 숫자는 우리가 표준적인 10진법으로 표시할 수 없다.
    예를 들어 우리는 대표할 수 없다⅓ 10진수:⅓ = 0.3333333...일부 이진 숫자도 마찬가지다.그들은 정확하게 묘사될 수 없다.
    예를 들어 0.1을 2진법으로 표시해 봅시다.
    마찬가지로 소수점 뒤의 값은 분수를 나타냅니다.

    이것은 0.1에 가깝다. 이것은 우리가 이 예에서 할 수 있는 가장 좋은 일이다. 그러나 그것이 완전히 0.1은 아니다.
    우리의 점이 이동할 수 있다는 사실은 우리가 원한다면 이 점수의 정밀도를 높일 수 있다는 것을 의미한다.
    그러나 사실은 우리가 2진법으로 숫자를 정확하게 표시할 수 없다는 것이다.
    이것은 약간의 재미있는 반올림 오류를 초래할 수 있다.
    JavaScript에서 0.2+0.1을 계산하려고 하면

    이것은 정답과 매우 가깝지만 완전히 정확하지는 않다.
    이 점을 감안하여, 우리는 통상적으로 차액을 검사함으로써 부동점수를 비교한다
    그들 사이.
    예컨대
    두 숫자가 같은지 확인하면, 우리는 그것들 사이의 차이가 매우 작은지 검사할 것이다.
    Math.abs(result1 - result2) < 0.001
    
    물론 이것은 간략한 예이다.실제로 현재 계산 중인 공차를 선택합니다.

    더 알고 싶으세요?


    다음 링크를 보려면 다음과 같이 하십시오.
  • The Floating Point Guide
  • See how any number would be represented as a float in binary
  • IEEE 754 Standard for Binary Floating-Point Arithmetic
  • 좋은 웹페이지 즐겨찾기