float increment / float range

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • float increment / float range

    hallo community,

    ich bin etwas neugierig wie man
    A. floats incrementen kann (0.6++ = 0.7 usw)

    B. eine range(0.6,1.6,0.1) mit floats erstellen kann mit zB 0.1er sprüngen

    ich bin mir im klaren dass es da grenzen gibt allein wegen der "Floating point precision"

    und warum die komische frage? (siehe meinen armen und uneleganten code)
    PHP-Code:
    $dimension "0.6-1.6"// mal einen wert von "0.4" mal eine range "0.6-1.6"
    $ex explode('-',$dimension);
    $start = (float)$ex[0];
    $end = (float)$ex[1];
    $count = (float)(($end*100)-($start*100))/1000// hab hier kein BC Math benutzt wie man sieht
    $output '';
    for (
    $i $start$i $end+$count$i=$i+$count) {
         
    $output .= $i.PHP_EOL;
    }
    echo 
    '<pre>'.$output.'</pre>';
    /* "0.6-1.6" ergibt
    0.6
    0.7
    0.8
    ...
    1.5
    1.6
    */
    /* "0.9" ergibt
    0.9
    */ 
    undynamisch und unelegant, ich würde es anders machen wenn ich wissen würde wie man floats incrementen kann oder eine float range erstellen kann.
    schon mal jemand was ähnliches gemacht?

    leider hat mir google als auch wie eure forum suchmachine nicht weitergeholfen.

    danke
    Zuletzt geändert von woozel; 28.12.2011, 21:54. Grund: gelöst

  • #2
    Hallo,

    solange die Intervallgrenzen rationale Zahlen sind, kann man sie auf Integers raufmultiplizieren und die entstehenden Glieder wieder teilen. Beispiel:

    PHP-Code:
        $range range(6161);
        
    $factor .1;
        
    $members array_map(function ($x) use ($factor) { return $x $factor; }, $range); 
    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      hallo Amica,
      der "factor" war es, sehr elegant gelöst, (o:
      vielen lieben dank (o:

      Kommentar

      Lädt...
      X