Zahl runden

Was meinst du mit funktioniert nicht richtig?
PHP:
<?php
var_dump(intSplit(1)); //array(2) { [0]=>  float(0) [1]=>  float(1) } 
var_dump(intSplit(12)); //array(2) { [0]=>  float(6) [1]=>  float(6) } 
var_dump(intSplit(15)); //array(2) { [0]=>  float(7) [1]=>  float(8) } 
var_dump(intSplit(5)); //array(2) { [0]=>  float(2) [1]=>  float(3) } 
var_dump(intSplit(4)); //array(2) { [0]=>  float(2) [1]=>  float(2) } 
var_dump(intSplit(22)); //array(2) { [0]=>  float(11) [1]=>  float(11) } 
var_dump(intSplit(11024)); //array(2) { [0]=>  float(5512) [1]=>  float(5512) } 
var_dump(intSplit(11821)); //array(2) { [0]=>  float(5910) [1]=>  float(5911) } 
var_dump(intSplit(9999)); //array(2) { [0]=>  float(4999) [1]=>  float(5000) }
var_dump(intSplit(-23)); //array(2) { [0]=>  float(-12) [1]=>  float(-11) } 
?>

Ist doch genauso wie du es möchtest...
 
Keine Ahung was du machst. Aber der Code von timestamp leifert gneua das was du wolltest.

Das Testscript
PHP:
<?php 
function intSplit($i){
  return array(floor($i/2),ceil($i/2));
}  


var_dump(intSplit(32));
var_dump(intSplit(1));
var_dump(intSplit(3));
?>

Ausgabe
Code:
array(2) {
  [0]=>
  float(16)
  [1]=>
  float(16)
}
array(2) {
  [0]=>
  float(0)
  [1]=>
  float(1)
}
array(2) {
  [0]=>
  float(1)
  [1]=>
  float(2)
}

Was soll da falsch laufen?
 
PHP:
function intSplit($Mathe){
  return array(floor($Mathe/2),ceil($Mathe/2));
}

$Mathe[0] = leer oder falsche Zahl
$Mathe[1] = leer oder falsche Zahl

Diesen Teil lösche ich (ist doch richtig?)
PHP:
       $Mathe = floor(($Soll_Width - $Ist_Width)/2); 
       $Mathe= array($Mathe,$Mathe);
                if( ($Mathe[0] + $Mathe[1]) < ($Soll_Width - $Ist_Width) ){ 
                     $Mathe[1]++;
 
Du musst die Funktion so benutzen:

PHP:
$breiten = intSplit($sollbreite-$istbreite);
 
Zuletzt bearbeitet:
PHP:
$Mathe = intSplit($sollbreite-$istbreite);  
$Mathe = array(floor($Mathe/2),ceil($Mathe/2));

So? :confused:
 
Ersetze
PHP:
       $Mathe = floor(($Soll_Width - $Ist_Width)/2); 
       $Mathe= array($Mathe,$Mathe);

durch
PHP:
function intSplit($Mathe){
  return array(floor($Mathe/2),ceil($Mathe/2));
}  
$Mathe = intSpilt(($Soll_Width - $Ist_Width)/2);
 
Du kannst die Funktion am besten in eine extra Datei schreiben und diese am Anfang deinen Scriptes includen. Anschließend kannst du die Funktion wie jede andere nutzen.
 
Passt zwar nicht ganz zum Thema aber ein neues Thema wollte ich jetzt nicht aufmachen.

Wenn ein Negative-Wert errechnet wird, soll eine Fehlermeldung erscheinen.

PHP:
$Mathe = $Soll_Breite - $Ist_Breite;

$Mathe = 200 - 220;

Fehler: Wählen sie eine andere Breite.
 
Erweitere die Funktion. Prüfe zu Beginn ob der Parameter gültig ist. Wenn nicht lässt du eine Fehlermeldung ausgeben.
 
Zurück