WinFuture-Forum.de: Php: Type Casting - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Php: Type Casting


#1 Mitglied ist offline   amdXP 

  • Gruppe: aktive Mitglieder
  • Beiträge: 84
  • Beigetreten: 15. März 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Wien, Österreich
  • Interessen:Computer, Linux, Mac, Internet, Digitale Fotografie, Programmieren, Webdesign, und viele mehr ;-)

geschrieben 25. März 2006 - 17:21

hi erstmal

also ich beginne gerade PHP zu erlernen und bin gerade beim casting von einen integer wert in einen double wert. also hier mal mein code
<?
$var1 = 23;
// $var1 wird in einen double wert umgewandelt und ist nun 23.0 und wird in $var2 zugewiesen
$var2 = (double) $var1;
//Den wert ausgeben
echo("$var2");
?>


nun eigentlich sollte wie im kommentar beschrieben der wert 23.0 ausgegeben werden, aber bei mir kommt nur 23 raus

hab den code aus dem buch "php 4 für dummies" (ned lachen ich bin ja erst im beginn stadion von PHP ;) )

danke schon mal für die vielen antworten ;)
0

Anzeige



#2 Mitglied ist offline   hasch 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.790
  • Beigetreten: 28. Januar 04
  • Reputation: 0
  • Wohnort:Localhost
  • Interessen:Ach so viele ...

geschrieben 25. März 2006 - 17:26

Ja und wo ist das Problem? Double ist eine Gleitkommanotation, die bis zu 15 Stellen nach dem Komma genau ist => Dezimalausgabe, wenn du nur eine ganzzahlige Zahl ausgeben möchtest, kannst du entweder in int umwandeln oder mit den Rundungsfkt. von PHP arbeiten...
0

#3 Mitglied ist offline   amdXP 

  • Gruppe: aktive Mitglieder
  • Beiträge: 84
  • Beigetreten: 15. März 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Wien, Österreich
  • Interessen:Computer, Linux, Mac, Internet, Digitale Fotografie, Programmieren, Webdesign, und viele mehr ;-)

geschrieben 25. März 2006 - 17:58

Beitrag anzeigenZitat (hasch: 25.03.2006, 17:26)

Ja und wo ist das Problem? Double ist eine Gleitkommanotation, die bis zu 15 Stellen nach dem Komma genau ist => Dezimalausgabe, wenn du nur eine ganzzahlige Zahl ausgeben möchtest, kannst du entweder in int umwandeln oder mit den Rundungsfkt. von PHP arbeiten...


ja aber wenn ich ne integer zahl wie 23 abspeicher, sollte die Gleitkommanotation ned 23.0 sein? ich mein das is zwar ein beispiel, aber es sollte doch möglich sein 23.0 auszugeben oder nicht?
0

#4 Mitglied ist offline   hasch 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.790
  • Beigetreten: 28. Januar 04
  • Reputation: 0
  • Wohnort:Localhost
  • Interessen:Ach so viele ...

geschrieben 25. März 2006 - 18:15

Dann solltest du die Fkt. auch auf die Variable anwenden ;)
D.h.

$var2 = floatval($var1);


bzw.

$var2 = doubleval($var1);


Double ist mir als Fkt. nicht bekannt, aber kannst ja auch mal ... versuchen:

$var2 = double($var1);

0

#5 Mitglied ist offline   amdXP 

  • Gruppe: aktive Mitglieder
  • Beiträge: 84
  • Beigetreten: 15. März 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Wien, Österreich
  • Interessen:Computer, Linux, Mac, Internet, Digitale Fotografie, Programmieren, Webdesign, und viele mehr ;-)

geschrieben 25. März 2006 - 18:40

hm deine funktionen erkennt er nicht, vllt hat das was mit den versionsunterschieden zwischen php4 und php5 zu tun, aber danke trozdem ;)
0

#6 Mitglied ist offline   hasch 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.790
  • Beigetreten: 28. Januar 04
  • Reputation: 0
  • Wohnort:Localhost
  • Interessen:Ach so viele ...

geschrieben 25. März 2006 - 18:47

Also bei mir gehen die Fkt. außer eben double... wie gesagt...

Dann machs doch mit number_format:

$var = 23;
$var = number_format($var, 2, ',', '.');

print $var;

0

#7 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 25. März 2006 - 21:01

Bei X.0 wird nur X ausgegeben. Nur bei X.Y wird auch X.Y ausgegeben.

echo("$var2");
ist übrigens Unsinn, die Anführungszeichen kannst du dir sparen. Wenn du die Nachkommastelle in jedem Fall haben wilst, kannst du number_format() oder sprintf() benutzen.

Wenn float als Typ reicht kannst du übrigens auch gleich
$var = X.0
eingeben.

double() gibt es nicht.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0