PHP getallen afronden op halve waarden

Pagina: 1
Acties:
  • 186 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil graag getallen afronden op .5, dus 2.3->2.5 , 2.2->2 , 1.8->2, 1.7->1.5.

Is dit mogelijk en zo ja welke functie kan ik daarvoor gebruiken. Heb al even zitten zoeken op Google, maar kan het niet vinden.

Acties:
  • 0 Henk 'm!

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18

djc

Je zou iets als round($val * 2) / 2 kunnen doen...

Rustacean


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20-09 23:58

TeeDee

CQB 241

Round(waarde *2) en deze weer door 2 delen?

Manuzhai.. :)

[ Voor 27% gewijzigd door TeeDee op 23-01-2007 13:23 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

http://nl3.php.net/round

of beter

http://nl3.php.net/manual/en/function.number-format.php

Vraag me af waarom je er zelf niet op gekomen bent met zoeken. Waar zocht je precies op?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

Verwijderd

code:
1
2
3
$getal = 2.3;

echo (round($getal * 2) / 2);

had ik eindelijk m'n inlog gegevens weer eens gevonden.. hehe

[ Voor 38% gewijzigd door Verwijderd op 23-01-2007 13:25 ]


Acties:
  • 0 Henk 'm!

  • sariel
  • Registratie: Mei 2004
  • Laatst online: 22-05-2024
PHP:
1
2
3
4
5
6
7
8
9
10
function quartround($number)
{
    $base = floor($number);
    $dec = $number - $base;
    if($dec < 0.25) $dec = 0;
    if($dec < 0.5) $dec = 0.5;
    if($dec < 0.75) $dec = 0.75;
    if($dev < 1) $dec = 1;
    return $base + $dec;
}

Copy.com


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dank voor alle reactie...snel ook...het probleem is inderdaad nu opgelost. THNX

Acties:
  • 0 Henk 'm!

Verwijderd

sariel, ik hoop niet dat je die quartround() in de praktijk toepast...
$dec is nl. altijd kleiner dan 1, en wordt bij jou dus altijd 1 (de laatste if-check) ;)

Acties:
  • 0 Henk 'm!

  • PolarBear
  • Registratie: Februari 2001
  • Niet online
[quote]sariel schreef op dinsdag 23 januari 2007 @ 13:27:
Verwijderd schreef op dinsdag 23 januari 2007 @ 19:39:
sariel, ik hoop niet dat je die quartround() in de praktijk toepast...
$dec is nl. altijd kleiner dan 1, en wordt bij jou dus altijd 1 (de laatste if-check) ;)
Beter zo dan iid:

PHP:
1
2
3
4
5
6
7
8
9
10
function quartround($number)
{
    $base = floor($number);
    $dec = $number - $base;
    if($dev < 1) $dec = 1;
    if($dec < 0.75) $dec = 0.75;
    if($dec < 0.5) $dec = 0.5;
    if($dec < 0.25) $dec = 0;
    return $base + $dec;
}

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Euh nee, $dec zal dan nog altijd 1 zijn ;). Bovendien moet je niet afronden op kwarten maar op halven!
PHP:
1
2
3
4
5
6
7
8
9
10
11
function halfround($number)
{
    $base = floor($number); 
    $dec = $number - $base; 
    if ($dec >= 0.75)
        return $base + 1;
    else if ($dec >= 0.25)
        return $base + 0.5;
    else
        return $base;
}


Een quartround zou zo zijn:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function quartround($number)
{
    $base = floor($number); 
    $dec = $number - $base; 
    if ($dec >= 0.875)
        return $base + 1;
    else if ($dec >= 0.625)
        return $base + 0.75;
    else if ($dec >= 0.375)
        return $base + 0.5;
    else if ($dec >= 0.125)
        return $base + 0.25;
    else
        return $base;
}

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 20-09 16:56

xces

To got or not to got..

Alleen heet die functie dan natuurlijk wel quartround ;)

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

dat staat er toch? O-)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Handiger (als 't werkt, al een paar jaar geen PHP meer gedaan):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function roundbase($number, $remainderparts) 
{ 
  $base = floor($number);  
  $dec = $number - $base;  
  return $base + (round($dec * $remainderparts) / $remainderparts);
}                                                                  

function halfround($number)
{
  return roundbase($number, 2)
}

function quartround($number)
{
  return roundbase($number, 4)
}
Pagina: 1