-1

0.5,0.6 ... 179.9,180.0으로 시작하는 이중 숫자를 추가하려고합니다. 이렇게하려면 다음 코드를 사용합니다.C++ Builder 및 Double Precision

http://imgur.com/Ap6Tosj

어떻게 수가 두 정밀도를 최소화 할 수 있습니다 : 나는이 프로그램을 실행하면

void __fastcall TForm1::FormCreate(TObject *Sender) 
{ 
    for (double i = 1; i <= 180; i+=0.1) { 
     listDegrees->Items->Add(i); 
    } 
} 

하지만,이 같은 뭔가를 보여줍니다?


편집 :

내가 학교에 대한 프로젝트를 가지고있다. 전자 회로에서 몇 가지 활동을 수행하므로 프로그램에서 좌표를 선택하면 전자 회로가 오른쪽/왼쪽/아래 또는 위로 회전합니다. 그래서 나는 이것을 필요로한다.

프로그램은 모든 사람들에게 유용한 Windows 응용 프로그램이어야합니다. 프로그램의 스크린 샷은 다음과 같습니다. http://i.imgur.com/APRB8WY.png

지금까지 모든 코드는 이전에 공유했습니다. 나는 편집해야한다고 생각한다. ListBox1-> Items-> Add (i); 이 문제를 해결하려면 내 코드 부분.

+1

http://programmers.stackexchange.com/questions/101163/what-causes-floating-point-rounding-errors를 참조하십시오. 정밀도가 정말로 중요한 경우 10 진수 라이브러리 사용을 고려하십시오. – Dunes

+0

이것은 부동 소수점 숫자를 인쇄하는 방법에 대한 문제입니다. 번호를 인쇄하는 코드 부분을 보여주십시오. – NicholasM

답변

1

Google에서이 질문을 쉽게 찾을 수 있습니다. 해당 함수에는 setprecision이라는 함수가 있습니다. 자세한 내용은 여기를 참조하십시오. http://www.cplusplus.com/reference/iomanip/setprecision/

+0

나는 그것을 시도했다. 이 방법은 콘솔 응용 프로그램에서 사용할 수 있지만 Windows 응용 프로그램에서는 사용할 방법을 모른다. – user3552878

+0

Win 응용 프로그램을 만들기 위해 무엇을 사용합니까? WinForm? –

+0

C++ Builder는 Embarcadero의 Visual Component Library (VCL이라고도 함) 또는 FireMonkey (FMX)를 사용하여 Windows 응용 프로그램을 작성합니다. 그는 아마도 VCL의 Format() 또는 FormatFloat()를 사용하여 원하는대로 서식이 지정된 (VCL에서 이해하는 독점 형식의) 문자열을 가져야합니다. –