Rechenfunktionen .......[HILFE]

tefla

Erfahrenes Mitglied
also ich habe 2 variablen:

$variable1 = "2";
$variable2 = "5.65";

ich will nun beide variablen multiplizieren

$variable1 * $variable2

$ergebnis = $variable1 * $variable2;

so $ergebnis gibt aber 2 * 5.65 aus

wie mach ich das der den wert aus gibt ??? und vor allem auf berücksichtigung das ich 4 mal multipliziere

also
variable1 * variable2
3 * 4
5 * 6

und das ganze am ende noch addiere !!!
 
moin,

hmm ich verstehe dein prob net ganz, machs doch einfach, wenn du mit der rechnung fertig bist mit echo

echo $ergebnis;

aber ich weis nicht ob du das meinst, schreibs einfach nochmal genauer
 
Hier liegt der fehler:
PHP:
$variable1 = "2"; 
$variable2 = "5.65";

so sind für PHP 2 und 5.65 nur strings. Wenn ich zwei strings mulitpliziere kommt nichts sinnvolles bei raus. Ich könnte genauso gut "kaffetasse" mit "kaffee" multiplizieren. Das soll aber einmal ein Integer (die 2) und einmal eine fliesskomma zahl sein (5.65).
Also:
PHP:
$variable1 = 2; 
$variable2 = 5.65;

$ergebnis = $variable1 * $variable2;

echo $ergebnis; // Da sollte jetzt 11.2 bei raus kommen.

Hoffe das war deutlich erklärt. Wenn nicht schau dir das PHP manual an:
http://www.php.net/manual/de/language.types.integer.php
http://www.php.net/manual/de/language.types.float.php

So Long
TheVirus
 
achso das war das problem, wusste aber net was du genau meintest, nächstes mal pls genauer
 
NOCH GENAUER?! ;-)

Also gut. Ich fang bei Zero an:
Variablen haben einen typen. Bei "normalen" Programmiersprachen muss man diesen immer angeben bevor man die variable benutzt. Man deklariert sie quasi vorher, damit mein compiler weiss, dass $meine_var eine variable ist, und ich bestimme dabei was für einen datentyp sie aufnehmen kann.
Die Atomaren Datentypen in PHP sind:
Boolsche Typen: true/flase oder 1/0
Integer Typen: Natürliche zahlen inklusive 0
Fliesskomma: oder Float oder double oder real sind reelle zahlen.
Strings: Zeichenketten, oder einfacher Text.

An der stelle soll hier mal schluss sein. Wenn sehen willst was es noch für datentypen gibt guck dir das hier an:
http://www.php.net/manual/de/language.types.php

Aber nun zu deinem Problem. Da bei PHP variablen nie vorher deklariert werden müssen erfasst PHP den datentypen dynamisch. Wenn ich mir jetzt also ne Variable $var hernehme, die nirgendwo aufgetaucht ist und ihr einfach den wert $var = "2" zu weise, dann bestimmt PHP den datentypen als String. Warum? Ganz klar, weil die 2 in anführungszeichen steht. Anführungszeichen markieren bei PHP Strings. Da 2 als solches auch ein String ist, ist logich, nur kann ich halt mit strings schlecht rechnen (Siehe beispiel "kaffeetasse" * "kaffe").

Lass ich nun die "" weg, dann ist es ein normaler integerwert, also eine natürliche zahl. Damit kann ich sehr gut rechnen. Deine andere Variable ist kein Integer sondern ne Float oder real oder was auch immer, halt eine reele zahl.
Ne natürliche Zahl ist aber auch gleichzeitig ne Reele. Integer ist eine Teilmenge von float. 2.0 element float ist das gleiche wie 2 element int.
PHP erkennt dies automatisch (bei anderen programmiersprachen muss man peinlichst genau auf den datentypen acht) und führt die multiplikation 2.0 * 5.6 aus. Ergebnis ist wiedrum ein float.

So ich hoffe der kleine Exkurs über elementare Datentypen war jetzt verständlicher.

So Long
TheVirus
 
:) @thevirus

deine erklärung ist spitze, ich meinte nur die fragestellung war meiner meinung etwas ungenau
 
cool danke für die ausführliche info,

hatte wo vergessen das integer nicht in anführungzeichen geschrieben werden :)

oda noch nich gewusst ;)


vielen dank
 
Zurück