18. september 2003 - 17:18
Der er
14 kommentarer og 1 løsning
fjern decimaler efter komma
Hvordan fjerner man decimalerne der er efter kommaet?? Jeg har denne kode men jeg vil gerne have op/nedrundet til det nærmeste hele tal... Edit4.Text := (floattostr(strtofloat(Edit3.Text)/987654321 )); Med venlig hilsen //'bramsing'
Annonceindlæg fra Deloitte
18. september 2003 - 17:21
#1
Edit4.Text := inttostr(strtoint(Edit3.Text) div 987654321);
18. september 2003 - 17:22
#2
svar
18. september 2003 - 17:22
#3
Edit4.Text := (floattostr(round(strtofloat(Edit3.Text)/987654321) ));
Slettet bruger
18. september 2003 - 17:22
#4
Brug Round(): Edit4.Text := (inttostr(Round(strtofloat(Edit3.Text)/987654321 )));
18. september 2003 - 17:22
#5
Round(); //Runder op eller ned Trunc(); //Fjerner decimaler helt, uden at runde op
18. september 2003 - 17:23
#6
Evt. Edit4.Text := (inttostr(round(strtofloat(Edit3.Text)/987654321) ));
18. september 2003 - 17:24
#7
18. september 2003 - 17:26
#8
mysitesolution.. det er tit for store tal til at bruge integer... Men arne_v's svar virker... Jeg takker for hjælpen...
18. september 2003 - 17:28
#9
jep jep... var heller ikke sikkert på det virkede...
18. september 2003 - 17:33
#10
Vi kan også selv lege lidt... function Hest(X: Extended): Int64; begin Result := Trunc(X); X := X - Trunc(X); if X >= 0.5 then Inc(Result); end; Edit4.Text := floattostr(Hest(strtofloat(Edit3.Text)/987654321));
18. september 2003 - 17:38
#11
Men selv den funktion er ikke helt præcis, 123,499999999999999994 vil give 124.
18. september 2003 - 17:40
#12
Jeg vil gerne give athlon-pascal point for sit lille arbejde... Jeg lægger et spørgsmål til dig ;o)
18. september 2003 - 17:40
#13
Nej, det behøver du ikke...
18. september 2003 - 18:35
#14
Den funktion er helt præcis. 123,499999999999999994 og 123,5 er nemlig samme tal ! I extended data type altså !
18. september 2003 - 18:36
#15
Se f.eks. følgende lille program: program BigFloat; {$APPTYPE CONSOLE} uses SysUtils, Classes; var x1,x2 : extended; s : array [1..sizeof(extended)*2] of char; i : integer; begin x1 := 123.5; bintohex(@x1,@s,sizeof(x1)); for i := 1 to 20 do write(s[i]); writeln; x2 := 123.499999999999999994; bintohex(@x2,@s,sizeof(x2)); for i := 1 to 20 do write(s[i]); writeln; end. (beklager at det er console, men sådan programmerer jeg altså i Pascal)
Kurser inden for grundlæggende programmering