# Zahlen 2 Stellen nach dem Komma ausgeben.



## Raverss (16. Juni 2004)

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


----------



## KristophS (16. Juni 2004)

Ja es gibt die Funktion [phpf]round[/phpf] .


----------



## Raverss (16. Juni 2004)

Hab ich schon probiert, klappt nicht!


----------



## Sven Petruschke (16. Juni 2004)

Kleine Anregung: 
	
	
	



```
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)


----------



## Raverss (16. Juni 2004)

klappt nicht, weil $kommastellen 0.xx ist und nicht xx


----------



## Raverss (17. Juni 2004)

So, hab mal die Funktion verbessert. So siehts richtig aus:


```
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


----------



## Raverss (17. Juni 2004)

NNNNEEEEEEIIIIIIINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN

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

Die macht genau das Selbe!

Über eine Stunde umsonst investiert...


----------



## Speedy-go (13. März 2006)

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.
> 
> ...




$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.


----------



## Speedy-go (13. März 2006)

Raverss hat gesagt.:
			
		

> So, hab mal die Funktion verbessert. So siehts richtig aus:
> 
> 
> ```
> ...



Zu kompliziert 

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

Kurz und bündig 

MfG, Alex.


----------

