Ich habe eine Frage bezüglich von Nachkommastellen und deren Erweiterungen. Bei der simplen Aufgabe einen Taschenrechner zu gestalten, nur mit Hilfe von Addition und Subtraktion. Und zwar bin ich mittlerweile bei der Division angelangt, die ziemlich viel Zeit in Anspruch genommen hat. Mein Divisionscode sieht folgendermaßen aus:
Delphi-Quellcode:
function krechnungen.dividieren(x,y: extended): extended;
var
temp,ergebnis :extended;
i: integer;
begin
temp:=x;
ergebnis:=0;
repeat
temp:=self.subtrahieren(temp,y);
ergebnis:=ergebnis+1;
until (temp=0) or (temp<0) or (temp<y);
for i:=1 to 10 do
begin
if temp>0 then
begin
temp:=self.multiplizieren(temp,10);
repeat
temp:=self.subtrahieren(temp,y);
ergebnis:=ergebnis+0.1;
until (temp=0) or (temp<0) or (temp<y);
end;
end;
result:=ergebnis;
end;
Und jetzt will ich mit Hilfe der Schleife for i:=1 to 10 do... die Kommazahl in Zeile "ergebnis:=ergebnis+0.1;..." mit jedem Durchgang um eine Stelle verringern. Und zwar würde i dann für die Kommastelle stehen. Z.b. bei i=1 0.1, i=2 0.01, i=3 0.001 usw.
Bitte flamed mich nicht zu, wenn das die kompliziertere Variante ist, aber es ist 5 Uhr morgens und da denkt man nicht so simpel xD
Ich will einfach nur noch schlafen und mich morgen um die Quadrate und Wurzeln kümmern xDDD Und weiß einer, wie ich hinkriege, dass möglichst gering gerundet wird? DANKE
!!!