• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[GELÖST] Formel in VBScript zu PHP

antiheld2000

New member
Hallo zusammen,

ich habe hier eine Formel in VBScript, welche ich in PHP übersetzen möchte. Hat "einigermassen" geklappt, nur kommen falsche Werte raus.

Das Original sieht so aus:
Code:
Dim curDiscountRate As Decimal = ((Restkaufgeld - Restrate) * Zinssatz / 100 / (1 - (12 / (12 + Zinssatz / 100)) ^ (12 * Jahre)) + Restrate * Zinssatz / 100) / 12 * 12 / (12)

Mein Versuch so:
PHP:
$toPow1 = 12/(12+$Zinssatz/100);
$toPow2 = 12*$Jahre;
$pow1 = pow($toPow1, $toPow2);

$curDiscountRate = (($Restkaufgeld-$Restrate)*$Zinssatz/100/1-$pow1+$Restrate*$Zinssatz/100)/12*12/(12);

Sieht jemand einen Fehler?

Ich wäre sehr zu Dank verpflichtet.

Dank und Gruß
anti
 
Zuletzt bearbeitet von einem Moderator:
Code:
Dim curDiscountRate As Decimal = ((Restkaufgeld - Restrate) * Zinssatz / 100 / [B]([/B]1 - ...
 
Ziemlich schlecht… Demnach sollte die Zeile in PHP so aussehen, oder?

PHP:
$curDiscountRate = (($Restkaufgeld-$Restrate)*$Zinssatz/100/(1-$pow1)+$Restrate*$Zinssatz/100)/12*12/(12);

Das Ergebnis ist immer noch unrealistisch. Ist das wirklich dasselbe? Ich seh den Wald vor lauter Bäumen nicht mehr :(
 
Kann es sein, das du eine Klammer () vergessen hast?
$curDiscountRate = (($Restkaufgeld-$Restrate) * $Zinssatz / 100 / (1 - $pow1) + $Restrate * $Zinssatz / 100) / 12 * 12 / (12);
 
Hi,
ein oder zwei Beispiele mit Ergebnis wären nicht schlecht.

Edit: Die Orginalformel liefert in VB ein richtiges Ergebnis?
 
Zuletzt bearbeitet:
Das ist leider das Problem. Wir müssen uns hier auf die Aussagen eines unkooperativen Ex-Dienstleisters verlassen. Dieser gibt an, es sei das Skript, welches auf der Website aktuell läuft. Derzeit haben wir leider nicht die Möglichkeit auf den Server zu schauen, aber die Live-Version der Seite gibt richtige Ergebnisse aus. Das doofe ist dann ja auch wieder, dass ich hier nicht das ganze Skript rausgeben darf… Was mach ich denn da bloss? Hm…
 
Man kann auch Formeln so formatieren, dass man schneller sieht, ob etwas unterschiedlich/falsch ist:
Code:
Dim curDiscountRate As Decimal = 
	(
		(
			Restkaufgeld -
			Restrate
		) *
		Zinssatz /
		100 /
		(
			1 -
			(
				12 /
				(
					12 +
					Zinssatz /
					100
				)
			) ^
			(12 * Jahre)
		) +
		Restrate *
		Zinssatz /
		100
	) /
	12 *
	12 /
	(12)
Code:
$curDiscountRate =
	(
		(
			$Restkaufgeld -
			$Restrate
		) *
		$Zinssatz /
		100 /
		(
			1 -
			pow(
				12 /
				(
					12 +
					$Zinssatz /
					100
				),
				12 * $Jahre
			)
		) + 
		$Restrate *
		$Zinssatz /
		100
	) /
	12 *
	12 /
	(12);

Aber die letzten 3 Operationen können zu einer zusammengefasst werden und die Formel ergibt nicht wirklich Sinn. Was soll da denn genau ausgerechnent werden?
 
Leider habe ich keinen Server zur Verfügung auf dem ASP läuft. Mir ist allerdings gerade aufgefallen, dass es einen Teil in der gesamten Funktion gibt, den ich nicht ganz deuten kann. Hierbei handelt es sich um die For-Schleife in der Funktion Discountrate.

Herauskommen sollen halt realistische Raten für Finanzierungen. Z. B. Fernseher für 3000 EUR, 500 EUR Anzahlung, bei 36 Monaten Laufzeit = 47 EUR Rate. Alle Werte die berechnet werden scheinen realistisch zu sein, nur die Rate nicht. Mir schwant, es liegt an meinem Unverständnis der For-Schleife.

Ich habe jetzt mal beide Skripte angehängt. Also bitte nicht meinem Auftraggeber sagen :p

Jemand eine Idee?
 
Herauskommen sollen halt realistische Raten für Finanzierungen. Z. B. Fernseher für 3000 EUR, 500 EUR Anzahlung, bei 36 Monaten Laufzeit = 47 EUR Rate.
Jemand eine Idee?

Ja, dir mal ein realistisches Beispiel vor den Augen halten.
Bei 3000 EUR und 500 EUR Anzahlung bleiben 2500 EUR übrig. 36 * 47 EUR = 1692 EUR zu zahlen. Verrate mir dein Finanzdienstleister.. :rolleyes:

Mit der RMZ Funktion im Excel kannst du Beispiele für Raten berechnen lassen.
 
Zuletzt bearbeitet:
Sorry. War zu früh :)

Bei der Finanzierungsart bleibt auch immer noch eine Abschlusszahlung nach. Also sollte es so aussehen:
3000 EUR, 500 EUR Anzahlung, bei 36 Monaten Laufzeit = 47 EUR Rate + 1269 EUR Restzahlung

Somit sieht es wieder realistisch aus.
 
Und was ist jetzt das Problem? Das ist doch nur Mathematik in dem originalen VB-Code. Kann doch nicht sooo schwer sein.

Ah ich sehe schon:
3000 EUR, 500 EUR Anzahlung, bei 36 Monaten Laufzeit = 47 EUR Rate + 1269 EUR Restzahlung

Somit sieht es wieder realistisch aus.
Ich weiß zwar nicht wie du rechnest, aber vom Gefühl her solltest du dir mal Papier, Stift und nen ordentlichen Taschenrechner besorgen...
 
Verstehe ich jetzt nicht…

Einkaufswert = 3000
Anzahlung = 500
Gewünschte Anzahl Raten = 36
Rate = 47
Restzahlung 1269

Macht ein realistisches Ergebnis.

3.000 - 500 = 2.500
36 * 47 = 1.692
Restzahlung = 808 + Zinsen etc. = 1.269

Kling für mich realistisch im Finanzsektor.
 
Hab' jetzt keinen Unterschied zwischen VB und PHP gesehen. Aber so wirklich Sinn ergeben die Formeln nicht... allein schon, dass der LaufzeitFaktor subtrahiert und nicht multipliziert wird...
 
Kling für mich realistisch im Finanzsektor.
Das sind zwar niedrige Raten, jedoch halte ich persönlich nicht so viel von solch einem Finanzierungsmodell.
Zumal ja, wegen der 500 Anzahlung, eigentlich nur 2500 wirklich finanziert werden. Und dann noch der "große" Batzen Restzahlung? Da muß man ja fast schon während der Ratenzahlung anfangen zu sparen, was die Monatsrate im Prinzip dann wieder größer macht. Wenn man sich das dann mal vergleicht:

Finanzierung 1 - nach deinem Beispiel:

3000 Einkaufswert
- 500 Anzahlung
========================
2500 Finanzierungswert

500 Anzahlung
+ 1692 Raten (36 x 47)
+ 1269 Restzahlung inkl. Zinsen
========================
3461 Gesamtkosten


Finanzierung 2 - bei einer normalen Privatkundenbank:

3000 Einkaufswert
- 0 Anzahlung
========================
3000 Finanzierungswert

0 Anzahlung
+ 3240 Raten (36 x 90)
+ 0 Restzahlung inkl. Zinsen
========================
3240 Gesamtkosten


Finanzierung 3 - bei einer normalen Privatkundenbank:

3000 Einkaufswert
- 500 Anzahlung
========================
2500 Finanzierungswert

500 Anzahlung
+ 2700 Raten (36 x 75)
+ 0 Restzahlung inkl. Zinsen
========================
3200 Gesamtkosten


Fazit: Ich würde mir das Geld bei meiner Bank holen und mir sogar 500 Anzahlung mitfinanzieren.
 
Zurück
Oben