나는 정밀도가 높아지면 더 정확한 결과를 얻어야 함을 이해합니다. 그러나 내가 정밀도를 증가이 예는 매우 명확하지 않다, 그러나 나는 올바른 결과를 얻고 있지 않다 :두 배 사용시 정밀도와 정확성
이 출력은#include <iostream>
#include <iomanip>
int main()
{
using namespace std;
cout << setprecision(17);
double dValue;
dValue = 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1;
cout << dValue << endl;
}
0.99999999999999989
누군가가 이런 일이 왜 나를 설명 할 수 있습니까?
사용중인 프로그래밍 언어는 C++입니다. –
IEEE 754 표준을 살펴보십시오. http://en.wikipedia.org/wiki/Double-precision_floating-point_format, 컴퓨터는 0.1과 같은 것을 볼 수 없습니다. 가장 가까운 2 진수입니다 (간단한 청사진 예제 2^-3 = 0.128d). 부동 소수점 수에 대한 계산을 할 때 정확한 결과를 얻지 못합니다. – Nabuchodonozor