Autor Zpráva
Taps
Profil
Zdravím, v PHP jsem vytvořil hodnotící systém. Uživatel zadá počet stupňů a procentuální horní hranici posledního stupně. Poté se vygeneruje pole, ve kterém jsou uvedena procenta která přísluší jednotlivým hodnotícím stupňům. Při testování jsem však narazil na problém se zaokrouhlováním. Pokud u níže uvedeného skriptu použiji round, tak se mi jako poslední stupeň nastaví číslo 73 (místo čísla 74), pokud round nepoužiji, tak číslo 73 zcela ve výpise chybí. Dokázali by mi ještě někdo poradit, jak tento skript opravit. Stači, když ve výpise budou uvedena pouze celá čísla. Děkuji
<?
$stupne = 5;
$procenta = 74;

$krokovani = round(($procenta-1)/($stupne-1));

for($i = 0; $i<$stupne; $i++){

        if($stupne == ($i+1)) {
             $hm = 100;
        }
        else {
                $hm = (($i+1) * $krokovani);
        }
        if($i == 0) {
                $sm = 0;
        }
        else{
                $sm =  ($i * $krokovani) +1;
        }
        
        $hranice[$i+1] = range($sm,$hm);

}

echo '<pre>';print_r($hranice);'<pre>';
?>
Alphard
Profil
Jestli tomu dobře rozumím, jde ti o rozdělení daného intervalu na n stejných částí. Bylo to napsané mnohokrát, ale zopakuji, že ve chvíli, kdy začneš pracovat s desetinnými čísly, ztrácíš přesnost. Podívej se na Zredukování pole, myslím, že hledáš funkci linspace. Analogicky v tomto scriptu doplň podmínku, která ten poslední prvek doplní přímo z $procenta (bez výpočtu).
Taps
Profil
Alphard:
Děkuji za reakci, bohužel s pythonem nemám žádné zkušenosti. Škoda, že nemáš řešení i v php.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: