14. marts 2004 - 16:53Der er
12 kommentarer og 1 løsning
Decimal tal
Hej...
Jeg er igang med at lave en lommeregner, men jeg vil jo selvfølgelig gerne have at den kan regne med decimal tal, men hvis jeg prøver på det så kommer den med fejlen: "Project Project1.exe raised exception class EConvertError with message "0,5' is not a valid integer value'. Process stopped. Use Step or Run to continue.
Du regner med integers, altså heltal, så du får problemer med f.eks. 1 / 2 fordi ½ ikke kan gemmes som en integer. Brug double eller float i stedet for integer.
Project Project1.exe raised exception class EConvertError with message "6.' is not a valid floating point'. Process stopped. Use Step or Run to continue.
dette svar får jeg hvis jeg sætter et punktum ind.
hvordan smider jeg så Edit1.Text ned i v? Hvis jeg siger v := StrToInt(Edit1.Text) så bliver det jo til en integer og så kan jeg ikke bruge decimaltal.
har gjort nu... så giver mine resultater bare 0... f.eks. hvis jeg tager 9 / 8 giver 1,125 så tager jeg det og ganger det med fx. 8 igen, så bliver resultatet 0.
Hvis du vil sikre dig der indtastes et punktum i stedet for et komma kan du lægge en fejlmeddellelse ind hvis det ikke bliver gjort:
function real_weight_of_age(V : real) : real; begin real_weight_of_age := (2.3*V) + 7.5; end;
procedure TForm1.Button2Click(Sender: TObject); var V:real; code:integer; st:string; begin val(edit2.text,V,code);
if code <> 0 then messagedlg ('brug punktum som . og ikke ,:' +Inttostr(code),mtwarning ,[mbok] ,0) else str(real_weight_of_age(V):3:1,st); label2.caption:=st; end;
så skal man bare gøre det modsatte med komma og punktum hvis det er ik? for på min lommeregner skal man bruge komma og ikke punktum.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.