Ĺadny brzuch
Chce w C++Builder 6 podzielic 2 liczyby całkowite a wynik z tego dzielenia będzie liczbą nie całkowitą (np. 15 / 2) .Wynik tego chce umieścić w Labelu . Jednak zawsze wynik zostaje skrócony o część po przecinku a ja potrzebuje dokładną liczbę .Prosze napiszcie mi przykład programu który by dzielił np. liczby 15 /2 i wyświetlił to w Labelu.
cifek
Możesz spróbować tak:
Masz pola tekstowe Edit1, Edit2 oraz Label1.
Poniższy kod możesz przypisać np. do przycisku:
{
double dLiczba1 = atof(Edit1->Text.c_str());
double dLiczba2 = atof(Edit2->Text.c_str());
double dWynik = dLiczba1 / dLiczba2;
char liczba[12];
Label1->Caption = gcvt(dWynik, 10, liczba);
}
Abit KT7A-Raid + Athlon 1.33 + 512 MB RAM + R9200 Pro + cisza :)
void __fastcall TForm1::Button1Click(TObject *Sender) { float wynik; wynik = 15 / 2; Label1->Caption = FloatToStr(wynik); }
To tyle.......
Pozdro for All
gg:4826295 | neohacker@interia.pl
Przepraszam za brak ogonkow; to dlatego, ze pisze ze szkolnego komputera, ktory nie wiadomo przez kogo byl konfigurowany.
Teoretycznie zapis float liczba = 15 / 2 nie zawsze da
liczbe z przecinkiem; zalezy to od kompilatora, bo wedlug standardow powinno dac liczbe bez przecinka. W C++ mamy dwa rodzaje dzielenia, oba schowane pod jednym znakiem / . Pierwsze to dzielenie z obcieciem czesci po przecinku; wykonywane jest wtedy, gdy obie dzielone liczby sa liczbami calkowitymi. Drugie dzielenie - z zachowaniem czesci po przecinku wykonywane jest wtedy, gdy choc jedna z dzielonych liczb jest typu float badz double. Czyli powyzsze dzielenie trzeba zapisac jako 15/2.0f, albo 15.0f/2. Jesli dzielone sa zmienne, to np. zmienna1 / static_cast<float(zmienna2) ;
//================================================
KĄESACP: Komputer Ąwiat - Expert Society Against Crap Posting
To join: Put these lines in your signature and don't post crap!
"E = mc... dolen taken my notepad!" - Terran Science Vessel (StarCraft)
GG: 1488052 | temporal@poczta.fm | [url]http://www.temporal-software.prv.pl
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
cifek
Możesz spróbować tak:
Masz pola tekstowe Edit1, Edit2 oraz Label1.
Poniższy kod możesz przypisać np. do przycisku:
{
double dLiczba1 = atof(Edit1->Text.c_str());
double dLiczba2 = atof(Edit2->Text.c_str());
double dWynik = dLiczba1 / dLiczba2;
char liczba[12];
Label1->Caption = gcvt(dWynik, 10, liczba);
}
Abit KT7A-Raid + Athlon 1.33 + 512 MB RAM + R9200 Pro + cisza :)
void __fastcall TForm1::Button1Click(TObject *Sender) { float wynik; wynik = 15 / 2; Label1->Caption = FloatToStr(wynik); }
To tyle.......
Pozdro for All
gg:4826295 | neohacker@interia.pl
Przepraszam za brak ogonkow; to dlatego, ze pisze ze szkolnego komputera, ktory nie wiadomo przez kogo byl konfigurowany.
Teoretycznie zapis float liczba = 15 / 2 nie zawsze da
liczbe z przecinkiem; zalezy to od kompilatora, bo wedlug standardow powinno dac liczbe bez przecinka. W C++ mamy dwa rodzaje dzielenia, oba schowane pod jednym znakiem / . Pierwsze to dzielenie z obcieciem czesci po przecinku; wykonywane jest wtedy, gdy obie dzielone liczby sa liczbami calkowitymi. Drugie dzielenie - z zachowaniem czesci po przecinku wykonywane jest wtedy, gdy choc jedna z dzielonych liczb jest typu float badz double. Czyli powyzsze dzielenie trzeba zapisac jako 15/2.0f, albo 15.0f/2. Jesli dzielone sa zmienne, to np. zmienna1 / static_cast<float(zmienna2) ;
//================================================
KĄESACP: Komputer Ąwiat - Expert Society Against Crap Posting
To join: Put these lines in your signature and don't post crap!
"E = mc... dolen taken my notepad!" - Terran Science Vessel (StarCraft)
GG: 1488052 | temporal@poczta.fm | [url]http://www.temporal-software.prv.pl