[ DART_VEJDER @ 30.09.2005. 15:16 ] @

kako da odredim koliko ce mi biti decimalnih mjesta u flaot-u koji dobijem sa StrToFloat (kasnije bih taj float stavio na StaticText sa FloatToStr())???
ali ne na foru StaticText1->Caption->SetLength(StaticText1->Caption->Length()-5)
nego kao u c-u npr.


printf("broj %10.3f ima 3 cifre poslije decimalnog zareza",broj);

?????
[ X Files @ 30.09.2005. 15:59 ] @
Ne znam da li postoji neki elegantan nacin za odredjivanje koliko brojeva ima
iza zareza, ali se to jako prosto odredjuje:

Code:

#include <SysUtils.Hpp>

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   AnsiString BROJ = "1234,567";

   int whole_length = BROJ.Length();
   int separator_pos = AnsiPos( DecimalSeparator, BROJ );

   ShowMessage( whole_length - separator_pos );
}


DecimalSeparator je globalna promenljiva koja ti kazuje da li se za odvajanje
koristi tacka ili zarez (podesava se u RegionalSettings).

Takodje decimal separator mozes i da zadas:

DecimalSeparator = '.';

... i vise ne razmisljas.


U svakom slucaju OBAVESZNO pogledaj FormatFloat(), koji se nalazi u
#include <SysUtils.Hpp>.



[ dejandj @ 30.09.2005. 16:59 ] @
Citat:
DART_VEJDER: kako da odredim koliko ce mi biti decimalnih mjesta u flaot-u koji dobijem sa StrToFloat (kasnije bih taj float stavio na StaticText sa FloatToStr())???
ali ne na foru StaticText1->Caption->SetLength(StaticText1->Caption->Length()-5)
nego kao u c-u npr.


printf("broj .3f ima 3 cifre poslije decimalnog zareza",broj);

?????


A u cem je problem?
C je integralni deo C++-a iliti cpp-a, pa mozes da koristis i taj printf, tj. .3 decimale a sscan tj sscanf funcionise isto, jedino je "problem" zaokruzivanje zadnje (i daljih) decimala jer ih "samo" brise tj NE zaokruzuje matematicarski...



[ DART_VEJDER @ 30.09.2005. 18:10 ] @
pa problem je jednostavan, dejandj:

scanf i printf nemaju smisla i mogucnost koriscenja u win programiranju....
to je za konzolno programiranje o cemu ti govoris....

ja sam rekao: hocu da StaticText kao Caption prikaze FloatToStr() neki broj , ali kojem cu staviti samo npr. 3 cifre iza decimalne linije....
e to me interesuje...
[ X Files @ 30.09.2005. 18:59 ] @
Citat:

ali kojem cu staviti samo npr. 3 cifre iza decimalne linije


Onda pogledaj FormatFloat()

[ X Files @ 01.10.2005. 07:44 ] @
Dakle:

Code:

// ...
#include <StrUtils.Hpp>
// ...
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   double f = 12345.1234; // ili float
   ShowMessage( f );

   AnsiString SKRACENO = FormatFloat( "0.00", f ); // skraceno na dve decimale
   ShowMessage( SKRACENO );
}