Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

mit Delphi Taschenrechner programmieren

bootswerft / 7 Antworten / Baumansicht Nickles

Hallo Leser,


ich habe vor einigen Tagen angefangen mit Delphi zu programmieren und möchte nun zum üben einen einfachen Taschenrechner erstellen. Jetzt habe ich das Peoblem mit dem divideren (nach dem Komma) das er mir den Rest einfach nicht ausrechnet. Was kann ich tun?


Bitte helft mir.


Vielen Dank im Voraus.

bei Antwort benachrichtigen
label bootswerft „mit Delphi Taschenrechner programmieren“
Optionen

Anstatt integer float oder double nehmen?

Bis denne,
label.

bei Antwort benachrichtigen
B.punkt bootswerft „mit Delphi Taschenrechner programmieren“
Optionen

also, ich hab so nen rechern schon geproggt, auch zur übung wegen.
aber was meinst du genau?
zeigt er den rest nicht an? oder wie?
wenn dann wär das sowas:

edit1.text:=FloatToStr(StrToFloat(a)/StrToFloat(b)); oder so...

CU B.punkt

bei Antwort benachrichtigen
bootswerft B.punkt „also, ich hab so nen rechern schon geproggt, auch zur übung wegen. aber was...“
Optionen

Ich meine damit wenn ich bei meinem Rechner "durch" rechne lässt er immer die Zahlen nach dem Komma weg. Bzw. habe ich jetzt ein anderes Programm angefangen bei dem ich ein feld habe in das ich eine Zahl eintrage, von dieser dann durch eine Formel
( Bsp: "zahl" / 100 * 10)
ein bestimmter Prozentwert berechnet wird. Und wenn ich z.B. Die Zahl 979 habe rechnert er mir nicht die Kommastelle bei Dividieren aus und somit wird das Ergebniss komplett falsch.
Ich hoffe du kannst mir helfen.

bei Antwort benachrichtigen
Borlander bootswerft „mit Delphi Taschenrechner programmieren“
Optionen

Wenn Du mit "/" dividierst (Gleitkommadivision), ist das Ergebnis immer ein Real-Type. Selbst bei der Division von zwei ganzzahligen Werten.
Wenn Du jedoch mit "div" dividierst (Ganzzahldivision), ist Ergebnis immer ein Integer-Type.

Wenn Du vesuchst das Ergebnis einer Gleitkommadivision einer Integer-Variable zuzuweisen müsstest der Compiler mit einem Fehler abbrechen.

In welcher Form willst Du den Wert eigentlich ausgeben?
Poste doch einfach mal die Quelltextzeile in der Du das Ergebnis berechnest und die in der Du es ausgibst. Und natürlich auch die Deklaration der beteiligeten Variablen.


CU Borlander

bei Antwort benachrichtigen
bootswerft Borlander „Wenn Du mit / dividierst Gleitkommadivision , ist das Ergebnis immer ein...“
Optionen

Ich habe vor das Ergebniss in einem Label auszugeben.

Hier der Quelltext der Formel:
----------------------------------------------------------------------

procedure TMehrwertsteuerrechner.Button2Click(Sender: TObject);
var nettoeingabe, nettoausgabe : int64;
begin
nettoeingabe:=StrToInt(Edit2.Text);
nettoausgabe:=nettoeingabe div 100 * 116;
Label8.Caption:=IntToStr(nettoausgabe);
end;
-------------------------------------------------------------------
Da ich in meinem Beruf als selbstständiger sehr viel mit der Steuer zu tun habe habe ich mir gedacht ein Programm zu schreiben mit dem ich diese schnell ausrechnen kann.

bei Antwort benachrichtigen
B.punkt bootswerft „mit Delphi Taschenrechner programmieren“
Optionen

1. Int64 ist Integer in ner grösseren ausgabe (soweit ich weiss)
2. nimm net div sondern / her, kommt bei dir aufs selbe hinaus!

das müsste es sein!

CU B.punkt

PS: statt IntToStr floatTostr nehmen nich vergessen...

bei Antwort benachrichtigen
Borlander bootswerft „mit Delphi Taschenrechner programmieren“
Optionen
nettoausgabe:=nettoeingabe div 100 * 116;
Siehe mein vorheriges Posting. Das Ergebnis von div ist immer eine Ganzzahl.

Machst statdessen so:
nettoausgabe := nettoeingabe / 100 * 116;

Damit das Funktioniert musst Du nettoausgabe allerdings als einen Real-Typ deklarieren (z.B. double)

Zur Ausgabe musst Du dann die Funktion FloatToStr verwenden.


CU Borlander
bei Antwort benachrichtigen