Zahlen 2 Stellen nach dem Komma ausgeben.

Raverss

Mitglied
Hallo,

wie kann ich Zahlen bis 2 Stellen nach dem Komma ausgeben, auch wenn nur eine Stelle nach dem Komma vorhanden ist.

Diese Methode klappt ja nicht:
$zahl = 12.5;
$ausgabe = $zahl."0";

, da $zahl ja auch 12.55 betragen kann.

Gib es da irgend ne Funktion für
 
Kleine Anregung:
PHP:
function runden($zahl, $nachkommastellen) {
  $ganzzahl = floor($zahl);
  $kommastellen = $zahl - $ganzzahl;
  $kommastellen = round($kommastellen) * (pow(10, $nachkommastellen));
  while (strlen($kommastellen) < $nachkommastellen) {
    $nachkommastellen .= '0';
  }
  return $ganzzahl.'.'.$nachkommastellen;
}

echo runden(12.5, 2);
(nicht getestet)
 
So, hab mal die Funktion verbessert. So siehts richtig aus:

PHP:
function runden($zahl_anf, $nachkommastellen) 
{ 
	$zahl_anf = round($zahl_anf,$nachkommastellen);
	$zahl = explode (".",$zahl_anf);
	if(isset($zahl[1]))
	{
		if(strlen($zahl[1]) < $nachkommastellen)
		{
			$kommastellen = $zahl[1];
			$anzahlnullen = 0;
			while(strlen($kommastellen) < $nachkommastellen) 
			{
				$kommastellen = $kommastellen."0";
				$anzahlnullen++;
			} 
			for($i=0;$i<$anzahlnullen;$i++)
			{	
				$ausgabe = $zahl_anf."0";
			}
		}
		else
		{
			$ausgabe = $zahl_anf;
		}
	}
	else
	{
		$ausgabe = $zahl[0];
		$ausgabe = $zahl_anf.".00";
	}
	return $ausgabe; 
}

PS: Hab das Script um 0:25 nochmal geändert, weils noch nicht perfekt war
 
Zuletzt bearbeitet:
NNNNEEEEEEIIIIIIINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN

Ich hab grad diese Funktion gefunden:
number_format($zahl, 2);

Die macht genau das Selbe!

Über eine Stunde umsonst investiert...
 
Zuletzt bearbeitet:
Raverss hat gesagt.:
Hallo,

wie kann ich Zahlen bis 2 Stellen nach dem Komma ausgeben, auch wenn nur eine Stelle nach dem Komma vorhanden ist.

Diese Methode klappt ja nicht:
$zahl = 12.5;
$ausgabe = $zahl."0";

, da $zahl ja auch 12.55 betragen kann.

Gib es da irgend ne Funktion für


$zahl = sprintf("%01.2f", $zahl);

Gibt allerdings die Zahlen immer mit 2 Nachkomma Stellen aus.
Z.B bei Eingabe 5 gibt aus: 5.00

MfG, Alex.
 
Raverss hat gesagt.:
So, hab mal die Funktion verbessert. So siehts richtig aus:

PHP:
function runden($zahl_anf, $nachkommastellen) 
{ 
	$zahl_anf = round($zahl_anf,$nachkommastellen);
	$zahl = explode (".",$zahl_anf);
	if(isset($zahl[1]))
	{
		if(strlen($zahl[1]) < $nachkommastellen)
		{
			$kommastellen = $zahl[1];
			$anzahlnullen = 0;
			while(strlen($kommastellen) < $nachkommastellen) 
			{
				$kommastellen = $kommastellen."0";
				$anzahlnullen++;
			} 
			for($i=0;$i<$anzahlnullen;$i++)
			{	
				$ausgabe = $zahl_anf."0";
			}
		}
		else
		{
			$ausgabe = $zahl_anf;
		}
	}
	else
	{
		$ausgabe = $zahl[0];
		$ausgabe = $zahl_anf.".00";
	}
	return $ausgabe; 
}

PS: Hab das Script um 0:25 nochmal geändert, weils noch nicht perfekt war

Zu kompliziert :-)

Besser wäre:
$zahl = sprintf("%01.2f", $zahl);

Kurz und bündig :-)

MfG, Alex.
 
Zurück