/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
script til øreafrunding
Fra : hygum


Dato : 19-08-05 08:17

Er der nogen, der har en php-function eller lignende php, der kan
øreafrunde en integer?


 
 
Christian Hansen (19-08-2005)
Kommentar
Fra : Christian Hansen


Dato : 19-08-05 09:46

Hej hygum

hygum wrote:
> Er der nogen, der har en php-function eller lignende php, der kan
> øreafrunde en integer?
>

Pænt er det ikke men :

function mround($belob) {
$afrund = array(0,25,50,75);
foreach ( $afrund as $value ) if( $belob - $value >= -13 && $belob
- $value <= 13) return $value;
}//mround

Baseret på http://www.fbr.dk/raad/forbruger/alle/raad024/

Mvh Christian

Lars Balker Rasmusse~ (19-08-2005)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 19-08-05 09:46

"hygum" <thomashygum@gmail.com> writes:
> Er der nogen, der har en php-function eller lignende php, der kan
> øreafrunde en integer?

function oere_afrund($oerer) {
$oerer += 12;
return $oerer - $oerer % 25;
}
--
Lars Balker Rasmussen Consult::Perl
http://consult-perl.dk

Christian Hansen (19-08-2005)
Kommentar
Fra : Christian Hansen


Dato : 19-08-05 10:42

Det er meget bedre end mit forslag - og mit forslag laver faktisk også
en fejl, fordi jeg har sat >= og <= på begge betingelse.

Godt tænkt.

Mvh Christian

Lars Balker Rasmussen wrote:
> "hygum" <thomashygum@gmail.com> writes:
>
>>Er der nogen, der har en php-function eller lignende php, der kan
>>øreafrunde en integer?
>
>
> function oere_afrund($oerer) {
> $oerer += 12;
> return $oerer - $oerer % 25;
> }

hygum (20-08-2005)
Kommentar
Fra : hygum


Dato : 20-08-05 11:24

Det ser kun ud til at virke i de fleste tilfælde. Kan det passe, at
funktionen afrunder 1856 øre til 1851?


hygum (20-08-2005)
Kommentar
Fra : hygum


Dato : 20-08-05 13:59

Nu har selv lavet en, der virker hver gang. Jeg er stolt. Den afrunder
alt i formatet xxxx.xx

læg mærke til "lillemønt" detaljen!

Jeg tror ikke, den virker for negative beløb, fordi floor funktionen
efter sigende ikke virker for negative beløb.

function afrund($belob) {
$mønter=array("0","0.25","0.5","0.75","1");
$dec=$belob-floor($belob);
foreach ($mønter as $mønt) {$abs=abs($mønt-$dec);
if ($abs<0.125) {break;} elseif ($abs==0.125) {if (!$lillemønt)
{$lillemønt=1;} else {break;};};
};
$belob=floor($belob)+$mønt;
return $belob;
};


Rander (20-08-2005)
Kommentar
Fra : Rander


Dato : 20-08-05 15:35

20 Aug 2005 05:59:06 -0700 brugte hygum 19 linier på at fortælle dette til
dk.edb.internet.webdesign.serverside.php:

>Nu har selv lavet en, der virker hver gang. Jeg er stolt. Den afrunder
>alt i formatet xxxx.xx

Jeg fandt lige en i kommentarerne for round på php.net, som jeg har
tilpasset lidt:

function afrund ($belob); {
   $belob = round (4 * $belob) / 4;
   return $belob;
}

Det er jo egentlig logisk nok, men det var absolut ikke lige så simple
baner jeg tænkte i da jeg så dit oprindelige spørgsmål.

På php.net er det brugt til at afrunde schweizer-franc, der skal rundes af
til 0.05 - der gangede og dividerede den blot med 20 (20*0.05=1).

--
Lars Rander ** Pil ikke ved min adresse ** :(){ :&:& };:
http://rander.dk (temporarily down!)

Ingen har nogensinde begået selvmord, mens de var ved at læse en god
bog, men mange har, mens de var ved at prøve at skrive en. (Robert Byrne)


Lars Balker Rasmusse~ (20-08-2005)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 20-08-05 20:31

"hygum" <thomashygum@gmail.com> writes:
> Det ser kun ud til at virke i de fleste tilfælde. Kan det passe, at
> funktionen afrunder 1856 øre til 1851?

Nej. Vis noget kode.
--
Lars Balker Rasmussen Consult::Perl
http://consult-perl.dk

hygum (21-08-2005)
Kommentar
Fra : hygum


Dato : 21-08-05 08:40

Til Lars Balker: Nej det er rigtigt, jeg må selv have lavet en fejl i
håndteringen af funktionens resultat, når 1856 bliver til 1851.

Til Rander: Enkelt og genialt!


Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste