|
void __fastcall TMain::Button1Click(TObject *Sender)
{
float flTemp = 3512.192831;
ShowMessage(Format("%.2f", ARRAYOFCONST(((float)flTemp))));
}
위 소스는 소스 둘재짜리까지 반올림해서 표시하는 함수입니다. 반올림을 원하지 않으신다면, 소스 둘재짜리를 직접 비교하셔서 그 자리만을 -5 를 시켜주는 알고리즘을 첨가해 주시면 될 것 같습니다.
왕대박 님이 쓰신 글 :
: 아~~ 이게 뭘까요?
:
: float f = (float)512*(float)0.1f; 값은?
:
: 1. f를 Break Point 찍어 놓고, 마우스 포인터로 값을 보면 : 51.200000763
: 2. Ctrl+F7로 보면 : 51.2
: 3. Debug 창의 Local Variables로 보면 : 51.2
: 4. Memo1->Lines->Add(f); 로 보면 : 51.200000763
: 5 Memo1->Lines->Add( Format("%05.2f", ARRAYOFCONST(((float)f))) ) : 51.2
: 6. Data Base에 저장해서 보면 : 51.200000763
: Qry->ParamByName("R25")->AsFloat = f; // (float)m_Record->R[14]/100.f;
: 물론, Database에 Table Item을 Float형으로 잡았음.
:
: 아무래도 보여주기 위한 모듈에서 atof함수가 형변환시 자릿수가 영향을 줄거라 생각이 드는데.. 쩝
: 어떻게 하면 데이터 베이스에 51.2 를 저장 할 수 있을까요?
:
: 데이터 베이스를 char 타입으로 모조리 바꿔버리면 우습게 될것 같기도 하고...
|