컴퓨터는 부동 소수점 숫자를 십진 문자열로 어떻게 변환합니까?

zzh1996

나는 다음과 같은 코드를 실행하면, 출력은 정확하게 숫자 2 500 진수있다.

(우분투의 g ++ 5.3.1)

#include<iostream>
#include<cmath>

using namespace std;

int main(){
    cout.precision(0);
    cout << fixed << pow(2.0,500.0);
    return 0;
}

C ++이이 부동 소수점 숫자를 그렇게 높은 정밀도로 십진 문자열로 어떻게 변환했는지 궁금합니다.

나는이 것을 알고 500 정확하게 IEEE 754 형식으로 제공 될 수있다. 하지만 생각 mod 10divided by 10부동 소수점에 정밀 손실이 발생할 수 있습니다. 변환이 진행될 때 어떤 알고리즘이 사용됩니까?

파스칼 쿠 오크

예, 2 500에 대한 정확한 배정 밀도 부동 소수점 표현이 있습니다. pow(2.0,500.0)하지만이 값이 생성 된다고 가정해서는 안됩니다 . 함수의 정확성에 대한 보장은 없으며 수학적 결과도 완벽하게 표현할 수 있었지만 생성하지 않음으로 인해 발생한 SO 질문pow찾을 수 있습니다.pow(10.0, 2.0)100.0

그러나 어쨌든 귀하의 질문에 대답하기 위해 부동 소수점 이진 표현에서 10 진수로의 변환은 일반적으로 부동 소수점 연산에 의존하지 않으며 실제로 최종 결과의 의도 된 정확도에 비해 너무 정확하지 않습니다. 일반적으로 정확한 변환을 위해서는 큰 정수 산술에 의존 해야합니다 . 2의 경우는 500 예를 들어, 순진 알고리즘은 반복적으로 바이너리로 작성된 큰 정수 분할하는 것입니다 1000…<500 zeroes in total>…열으로합니다.

부동 소수점 산술을 사용할 수있는 경우가 있습니다. 예를 들어 10에서 10 23 까지의 거듭 제곱이 IEEE 754 배정 밀도로 정확하게 표현 된다는 사실을 활용합니다 . 그러나 이진 부동 소수점과 10 진수 부동 소수점 사이의 올바른 반올림 변환에는 항상 일반적으로 큰 정수 산술이 필요하며, 이는 특히 1.0에서 멀리 떨어져 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

숫자를 십진수로 어떻게 변환합니까?

분류에서Dev

데이터 프레임은 부동 소수점을 모두 십진수로 문자열로 변환

분류에서Dev

측정 단위가있는 소수를 같은 단위를 가진 부동 소수점으로 어떻게 변환합니까?

분류에서Dev

MIPS를 사용하여 저장된 헥사 숫자 배열을 십진수로 어떻게 변환합니까?

분류에서Dev

이진 숫자를 4 BCD 숫자로 변환-나누기는 어떻게 작동합니까?

분류에서Dev

Monotouch에서 문자열을 십진수 / 부동 소수점으로 변환하는 방법은 무엇입니까?

분류에서Dev

Python : 음수 문자열 숫자를 부동 소수점으로 변환하는 데 어려움이 있습니다.

분류에서Dev

프린터는 컴퓨터에서 문서를 어떻게 수신합니까? 내부 대기열?

분류에서Dev

주어진 범위에서 대부분의 십진수로 끝나는 부동 소수점 값을 어떻게 찾습니까?

분류에서Dev

숫자의 영어 문자열을 부동 소수점으로 변환하는 방법 (예 : "twenty-six"=> 26.0)

분류에서Dev

어떻게 형식의 시간과 분에서 부동 소수점 숫자를 합계하는?

분류에서Dev

10 진수 부동 소수점 숫자를 2 진수로 또는 그 반대로 변환

분류에서Dev

부동 소수점 숫자를 템플릿 매개 변수로 어떻게 전달할 수 있습니까?

분류에서Dev

특정 프로그램을 컴파일하는 동안 컴퓨터가 잠 깁니다. 문제를 어떻게 진단 할 수 있습니까?

분류에서Dev

자바 스크립트 : 어떻게 스페인어 형식으로 부동 소수점 숫자에 영어 형식으로 부동 소수점 숫자를 변환하는 방법?

분류에서Dev

부동 소수점 숫자가 비정규 숫자 일 때 frac 비트는 어떻게됩니까?

분류에서Dev

Lambda : 밑 수가있는 주어진 숫자를 십진수로 변환

분류에서Dev

Azure 논리 앱에서 부동 소수점 숫자를 2 개의 십진수로 반올림하는 방법은 무엇입니까?

분류에서Dev

숫자 (또한 부동 소수점)를 16 진수로 또는 그 반대로 변환

분류에서Dev

명확한 십진수 표현을 위해 9 개의 유효 십진수가 필요한 단 정밀도 부동 소수점 숫자는 무엇입니까?

분류에서Dev

숫자가 함수의 실제 매개 변수 인 경우 내 컴퓨터가 부동 소수점 숫자 끝에있는 소수 자릿수를 임의로 변경하는 이유는 무엇입니까?

분류에서Dev

문자열 코드화 된 숫자를 C 언어로 부동으로 변환하는 자체 함수 생성

분류에서Dev

Phpunit 및 부동 소수점 숫자는 문자열로 저장됩니다.

분류에서Dev

입력 유형 = 숫자 : Firefox는 소수점 뒤에 3 자리가있을 때 부동 소수점 숫자를 정수로 변환합니다.

분류에서Dev

parseFloat 문자열 숫자를 소수점 이하 두 자리가있는 부동 소수점으로 변환하는 방법

분류에서Dev

매우 큰 부동 소수점 숫자는 메모리에서 어떻게 표현됩니까?

분류에서Dev

내 문자열을 부동 소수점으로 변환 함수가 순수한 C에서 약간 벗어난 숫자를 반환하는 이유는 무엇입니까?

분류에서Dev

PHP에서 숫자를 단어로 변환 (인도 루피) 십진수 문자열 문제

분류에서Dev

문자열 목록을 부동 숫자 배열로 변환하려면 어떻게해야합니까?

Related 관련 기사

  1. 1

    숫자를 십진수로 어떻게 변환합니까?

  2. 2

    데이터 프레임은 부동 소수점을 모두 십진수로 문자열로 변환

  3. 3

    측정 단위가있는 소수를 같은 단위를 가진 부동 소수점으로 어떻게 변환합니까?

  4. 4

    MIPS를 사용하여 저장된 헥사 숫자 배열을 십진수로 어떻게 변환합니까?

  5. 5

    이진 숫자를 4 BCD 숫자로 변환-나누기는 어떻게 작동합니까?

  6. 6

    Monotouch에서 문자열을 십진수 / 부동 소수점으로 변환하는 방법은 무엇입니까?

  7. 7

    Python : 음수 문자열 숫자를 부동 소수점으로 변환하는 데 어려움이 있습니다.

  8. 8

    프린터는 컴퓨터에서 문서를 어떻게 수신합니까? 내부 대기열?

  9. 9

    주어진 범위에서 대부분의 십진수로 끝나는 부동 소수점 값을 어떻게 찾습니까?

  10. 10

    숫자의 영어 문자열을 부동 소수점으로 변환하는 방법 (예 : "twenty-six"=> 26.0)

  11. 11

    어떻게 형식의 시간과 분에서 부동 소수점 숫자를 합계하는?

  12. 12

    10 진수 부동 소수점 숫자를 2 진수로 또는 그 반대로 변환

  13. 13

    부동 소수점 숫자를 템플릿 매개 변수로 어떻게 전달할 수 있습니까?

  14. 14

    특정 프로그램을 컴파일하는 동안 컴퓨터가 잠 깁니다. 문제를 어떻게 진단 할 수 있습니까?

  15. 15

    자바 스크립트 : 어떻게 스페인어 형식으로 부동 소수점 숫자에 영어 형식으로 부동 소수점 숫자를 변환하는 방법?

  16. 16

    부동 소수점 숫자가 비정규 숫자 일 때 frac 비트는 어떻게됩니까?

  17. 17

    Lambda : 밑 수가있는 주어진 숫자를 십진수로 변환

  18. 18

    Azure 논리 앱에서 부동 소수점 숫자를 2 개의 십진수로 반올림하는 방법은 무엇입니까?

  19. 19

    숫자 (또한 부동 소수점)를 16 진수로 또는 그 반대로 변환

  20. 20

    명확한 십진수 표현을 위해 9 개의 유효 십진수가 필요한 단 정밀도 부동 소수점 숫자는 무엇입니까?

  21. 21

    숫자가 함수의 실제 매개 변수 인 경우 내 컴퓨터가 부동 소수점 숫자 끝에있는 소수 자릿수를 임의로 변경하는 이유는 무엇입니까?

  22. 22

    문자열 코드화 된 숫자를 C 언어로 부동으로 변환하는 자체 함수 생성

  23. 23

    Phpunit 및 부동 소수점 숫자는 문자열로 저장됩니다.

  24. 24

    입력 유형 = 숫자 : Firefox는 소수점 뒤에 3 자리가있을 때 부동 소수점 숫자를 정수로 변환합니다.

  25. 25

    parseFloat 문자열 숫자를 소수점 이하 두 자리가있는 부동 소수점으로 변환하는 방법

  26. 26

    매우 큰 부동 소수점 숫자는 메모리에서 어떻게 표현됩니까?

  27. 27

    내 문자열을 부동 소수점으로 변환 함수가 순수한 C에서 약간 벗어난 숫자를 반환하는 이유는 무엇입니까?

  28. 28

    PHP에서 숫자를 단어로 변환 (인도 루피) 십진수 문자열 문제

  29. 29

    문자열 목록을 부동 숫자 배열로 변환하려면 어떻게해야합니까?

뜨겁다태그

보관