Lær mig lidt om strtoint eller inttostr

Tags:    delphi

<< < 12 > >>
Kan en forklare mig GODT og grundigt hvornår du bruger inttostr, strtoint, timetostr, datetostr og funktioner som floud og round (ved ikke om jeg stavede de to rigtigt).
Og som en slutning, skiv så også lige hvor man skal sætte "()".

Tak.
Kan nemlig slet ikke finde ud af hvornår jeg skal bruge hvad eller intet.
For det meste ender det med at jeg skal spørge The-friek eller andre på udvikleren som jeg har på messenger, om hvad jeg skal gøre.
Og det kan jo ikke være meningen :)


Shafh
Shafh@stofanet.dk
Theis F. Hinz

Ti-fire :D :P :)



16 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Kan en forklare mig GODT og grundigt hvornår du bruger inttostr, strtoint, timetostr, datetostr og funktioner som floud og round (ved ikke om jeg stavede de to rigtigt).
Og som en slutning, skiv så også lige hvor man skal sætte "()".

Tak.
Kan nemlig slet ikke finde ud af hvornår jeg skal bruge hvad eller intet.
For det meste ender det med at jeg skal spørge The-friek eller andre på udvikleren som jeg har på messenger, om hvad jeg skal gøre.
Og det kan jo ikke være meningen :)


Shafh
Shafh@stofanet.dk
Theis F. Hinz

Ti-fire :D :P :)


() bruges kun i C-sprogenes syntaks og står egentlig for (void), men det behøver du ikke bekymre dig så længe du holder dig til Delphi, da du ikke behøver () efter hver funktion, der ikke skal bruge variabler.
IntToStr er jo som navnet antyder en funktion der laver integer (heltal) om til en streng. Fx laves der her en streng med '1234':
Fold kodeboks ind/udKode 


Ligeledes bruges StrToInt til at lave strenge om til integer:
Fold kodeboks ind/udKode 

TimeToStr og DateToStr giver jo så sig selv efter disse eksempler (håber jeg, ellers spørg!).

Round runder et hvilket som helst tal (som er real, som er en betegnelse ligesom integer, slå op under integer types i indeks i hjælpen), op eller ned til et heltal (integer) afhængig af om det er større eller mindre end .5 i decimalerne. Fx rundes der her ned til 1.
Fold kodeboks ind/udKode 


Floor runder også op, men den runder altså ALTID op til det nærmeste heltal, også hvis decimalerne er under 0.5, dvs. med eksemplet fra før bare med floor, bliver resultatet 2.
Fold kodeboks ind/udKode 


Hvis der er noget du ikke forstod, så spørg endelig igen, og ellers så tjek næste gang Delphi's hjælp, da den er ret omfattende. Bare slå funktionen op i indeks, så får du en rimelig god gennemgang af funktionen plus eksempler i de fleste tilfælde. Hvis det er en Windows funktion, så kan du også slå op i Win32 hjælpen, som ligger under Help -> Windows SDK. Funktionerne er dog bare her gennemgået i C++, men det vender man sig til.

n i f e
115 105 102 105
6E 69 66 69

[Redigeret d. 06/06-04 00:20:05 af Nicolai Lyster Fersner]



Round runder et hvilket som helst tal (som er real, som er en betegnelse ligesom integer, slå op under integer types i indeks i hjælpen), op eller ned til et heltal (integer) afhængig af om det er større eller mindre end .5 i decimalerne. Fx rundes der her ned til 1.
Fold kodeboks ind/udKode 



Vil nu lige sige at Round funktionen i Delphi ikke duer til almindelige udregning... Her er en bedre Round funktion:
Fold kodeboks ind/udKode 

Den her forbedrede round funktion runder rigtigt af. Derudover vil jeg også lige sige at Floor runder mod negativt, og ikke positivt, såvidt jeg husker...

MH.

The-Freak

Livet er for kort til at kede sig.



Real er alle tal incl kommatal



floor runder ned der er jo gulvet og det er nede, ceil runder op det er loftet som er oppe.
-----------------------------------------------------------------------------

Min side ->www.the-hive.dk/~donp/



Jeps, undskyld stavefejlen, det er jo rigtigt nok at floor runder ned.

n i f e
115 105 102 105
6E 69 66 69

[Redigeret d. 06/06-04 10:45:55 af Nicolai Lyster Fersner]



hvorfor skulle round funktionen ikke du ?



Du der siger at man ikke skal bruge (), til noget:

Det skal man jo. Du har selv gjord det i dit eksempel:

var
I : Real;
B : Integer;
begin
I := 1.46;
B := Round(I);

Her har du () rund om I. Så joooo, det skal man.
Men er der en der ved hvor, det skifter lidt.

Og så lige en spørgsmål til dit overstående eks:
Nu kalder du I: Real; Hvad er Real?

Men ellers syns jeg at jeg har fået et par gode svar, men kig lige på det jeg siger tak.



Shafh
Shafh@stofanet.dk
Theis F. Hinz

Ti-fire :D :P :)



aha... :D

Tak.


Nu begynder jeg at blive tilfræs. Men kort og godt.
Hvornår bruger man ().

OG DET GØR MAN, ALTSÅ!



Shafh
Shafh@stofanet.dk
Theis F. Hinz

Ti-fire :D :P :)



Jeg troede du mente (), altså uden noget indeni. Det kunne du nu altså godt have fortalt, men
( og ) bruger man efter procedurer og funktioner for at kunne bruger variabler i funktionen eller proceduren. Det er det du gør med function IntToStr(I : Integer) : String:

I øvrigt sagde Jesper at Real er alle tal, det er ikke sandt.
Real er 5.0 x 10^-324 - 1.7 x 10^308.

n i f e
115 105 102 105
6E 69 66 69

[Redigeret d. 06/06-04 21:15:49 af Nicolai Lyster Fersner]



Tak.
Nu har jeg fået mit svar.
Dog syns jeg ikke jeg har fået en forklaring over hvornår precis jeg skal bruge hvad.

Eks.
Hvorfor SKAL man skrive:

Timer1.Interval := StrToInt(Edit1.Text)

men hvis du skal det omvente. Og få intervallet til at stå i en label virker det ikke med den regl:

Label1.caption := strtoint(timer.interval);

Så skal man skrive noget andet. Hved ikke hvad det i dette eks. skulle være, men syns hele tiden det skifter :(



Shafh
Shafh@stofanet.dk
Theis F. Hinz

En professionel er en person, som kan gøre sit bedste på tidspunkter,hvor han ikke ligefrem føler for det.



<< < 12 > >>
t