Connecting Tech Pros Worldwide Forums | Help | Site Map

round number to the nearest...

dkirkdrei@yahoo.com
Guest
 
Posts: n/a
#1: Aug 27 '07
I am looking for a way to round a number (which will be displayed as a
dollar amount) to the nearest nickel. Using the php round function
only allows you to control the number of decimal places in a number. I
need to round to the nearest .05. For example: 5.36 would be rounded
to 5.35, 10.49 would be rounded to 10.50, etc.. Any help would be
greatly appreciated.


Krustov
Guest
 
Posts: n/a
#2: Aug 27 '07

re: round number to the nearest...


<comp.lang.php>
<>
<Mon, 27 Aug 2007 14:36:14 -0700>
<1188250574.997233.228620@57g2000hsv.googlegroups. com>
Quote:
I am looking for a way to round a number (which will be displayed as a
dollar amount) to the nearest nickel. Using the php round function
only allows you to control the number of decimal places in a number. I
need to round to the nearest .05. For example: 5.36 would be rounded
to 5.35, 10.49 would be rounded to 10.50, etc.. Any help would be
greatly appreciated.
>
Here goes the worst ever php code posted to this newsgroup .

But hang loose as somebody will be along shortly with a one line
solution :-)


<?php

$demo=12.34;

print "demo = $demo <br><br>";

$daffyduck=strlen($demo);
print "daffyduck = $daffyduck <br><br>";

$mickymouse=substr($demo,$daffyduck-3,1);
print "mickymouse = $mickymouse <br><br>";

if ($mickymouse==".")
{

$snowwhite=substr($demo,0,$daffyduck-1);
print "snowwhite = $snowwhite <br><br>";

$dwarfs=substr($demo,$daffyduck-1,1);
print "dwarfs = $dwarfs <br><br>";

if ($dwarfs==0) {$poop=0;}
if ($dwarfs==1) {$poop=0;}
if ($dwarfs==2) {$poop=0;}
if ($dwarfs==3) {$poop=5;}
if ($dwarfs==4) {$poop=5;}
if ($dwarfs==5) {$poop=5;}
if ($dwarfs==6) {$poop=5;}
if ($dwarfs==7) {$poop=0;}
if ($dwarfs==8) {$poop=0;}
if ($dwarfs==9) {$poop=0;}

$albundy=$snowwhite . $poop;
print "albundy = $albundy <br><br>";

}

?>


--
(c) The Amazing Krustov
=?ISO-8859-15?Q?Iv=E1n_S=E1nchez_Ortega?=
Guest
 
Posts: n/a
#3: Aug 27 '07

re: round number to the nearest...


dkirkdrei@yahoo.com wrote:
Quote:
I am looking for a way to round a number (which will be displayed as a
dollar amount) to the nearest nickel. Using the php round function
only allows you to control the number of decimal places in a number. I
need to round to the nearest .05. For example: 5.36 would be rounded
to 5.35, 10.49 would be rounded to 10.50, etc.. Any help would be
greatly appreciated.
Multiply by 20, then round, then divide by 20. That should do it.

function round_to_nickel($number)
{
return ( round( $number*20 ) /20);
}

--
----------------------------------
Iván Sánchez Ortega -ivansanchez-algarroba-escomposlinux-punto-org-

http://acm.asoc.fi.upm.es/~mr/ ; http://acm.asoc.fi.upm.es/~ivan/
MSN:i_eat_s_p_a_m_for_breakfast@hotmail.com
Jabber:ivansanchez@jabber.org ; ivansanchez@kdetalk.net
Jerry Stuckle
Guest
 
Posts: n/a
#4: Aug 28 '07

re: round number to the nearest...


Krustov wrote:
Quote:
<comp.lang.php>
<>
<Mon, 27 Aug 2007 14:36:14 -0700>
<1188250574.997233.228620@57g2000hsv.googlegroups. com>
>
Quote:
>I am looking for a way to round a number (which will be displayed as a
>dollar amount) to the nearest nickel. Using the php round function
>only allows you to control the number of decimal places in a number. I
>need to round to the nearest .05. For example: 5.36 would be rounded
>to 5.35, 10.49 would be rounded to 10.50, etc.. Any help would be
>greatly appreciated.
>>
>
Here goes the worst ever php code posted to this newsgroup .
>
But hang loose as somebody will be along shortly with a one line
solution :-)
>
>
<?php
>
$demo=12.34;
>
print "demo = $demo <br><br>";
>
$daffyduck=strlen($demo);
print "daffyduck = $daffyduck <br><br>";
>
$mickymouse=substr($demo,$daffyduck-3,1);
print "mickymouse = $mickymouse <br><br>";
>
if ($mickymouse==".")
{
>
$snowwhite=substr($demo,0,$daffyduck-1);
print "snowwhite = $snowwhite <br><br>";
>
$dwarfs=substr($demo,$daffyduck-1,1);
print "dwarfs = $dwarfs <br><br>";
>
if ($dwarfs==0) {$poop=0;}
if ($dwarfs==1) {$poop=0;}
if ($dwarfs==2) {$poop=0;}
if ($dwarfs==3) {$poop=5;}
if ($dwarfs==4) {$poop=5;}
if ($dwarfs==5) {$poop=5;}
if ($dwarfs==6) {$poop=5;}
if ($dwarfs==7) {$poop=0;}
if ($dwarfs==8) {$poop=0;}
if ($dwarfs==9) {$poop=0;}
>
$albundy=$snowwhite . $poop;
print "albundy = $albundy <br><br>";
>
}
>
?>
>
>
I do admit - your solution is "ducky"! - and it "dwarfs" the ideas I
came up with.

Of course, this is a pure snow white PHP solution!

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================
dkirkdrei@yahoo.com
Guest
 
Posts: n/a
#5: Aug 28 '07

re: round number to the nearest...


On Aug 27, 5:59 pm, Krustov <m...@privacy.netwrote:
Quote:
<comp.lang.php>
<>
<Mon, 27 Aug 2007 14:36:14 -0700>
<1188250574.997233.228...@57g2000hsv.googlegroups. com>
>
Quote:
I am looking for a way to round a number (which will be displayed as a
dollar amount) to the nearest nickel. Using the php round function
only allows you to control the number of decimal places in a number. I
need to round to the nearest .05. For example: 5.36 would be rounded
to 5.35, 10.49 would be rounded to 10.50, etc.. Any help would be
greatly appreciated.
>
Here goes the worst ever php code posted to this newsgroup .
>
But hang loose as somebody will be along shortly with a one line
solution :-)
>
<?php
>
$demo=12.34;
>
print "demo = $demo <br><br>";
>
$daffyduck=strlen($demo);
print "daffyduck = $daffyduck <br><br>";
>
$mickymouse=substr($demo,$daffyduck-3,1);
print "mickymouse = $mickymouse <br><br>";
>
if ($mickymouse==".")
{
>
$snowwhite=substr($demo,0,$daffyduck-1);
print "snowwhite = $snowwhite <br><br>";
>
$dwarfs=substr($demo,$daffyduck-1,1);
print "dwarfs = $dwarfs <br><br>";
>
if ($dwarfs==0) {$poop=0;}
if ($dwarfs==1) {$poop=0;}
if ($dwarfs==2) {$poop=0;}
if ($dwarfs==3) {$poop=5;}
if ($dwarfs==4) {$poop=5;}
if ($dwarfs==5) {$poop=5;}
if ($dwarfs==6) {$poop=5;}
if ($dwarfs==7) {$poop=0;}
if ($dwarfs==8) {$poop=0;}
if ($dwarfs==9) {$poop=0;}
>
$albundy=$snowwhite . $poop;
print "albundy = $albundy <br><br>";
>
}
>
?>
>
--
(c) The Amazing Krustov
Krustov,

I am loving the script but I think I will have to work on the $poop a
bit. lol, When I get to a situation where the 1st digit after the
decimal needs to be rounded up, it still rounds down. This adds even
more diffuculty to it when I have a number like 5.98 as the entire
number will round to 6.00. Thanks for the help!

dkirk....

Steve
Guest
 
Posts: n/a
#6: Aug 28 '07

re: round number to the nearest...



"Krustov" <me@privacy.netwrote in message
news:MPG.213d59927dbc988b98ac29@news.newsreader.co m...
| <comp.lang.php>
| <>
| <Mon, 27 Aug 2007 14:36:14 -0700>
| <1188250574.997233.228620@57g2000hsv.googlegroups. com>
|
| I am looking for a way to round a number (which will be displayed as a
| dollar amount) to the nearest nickel. Using the php round function
| only allows you to control the number of decimal places in a number. I
| need to round to the nearest .05. For example: 5.36 would be rounded
| to 5.35, 10.49 would be rounded to 10.50, etc.. Any help would be
| greatly appreciated.
| >
|
| Here goes the worst ever php code posted to this newsgroup .
|
| But hang loose as somebody will be along shortly with a one line
| solution :-)
|
|
| <?php
|
| $demo=12.34;
|
| print "demo = $demo <br><br>";
|
| $daffyduck=strlen($demo);
| print "daffyduck = $daffyduck <br><br>";
|
| $mickymouse=substr($demo,$daffyduck-3,1);
| print "mickymouse = $mickymouse <br><br>";
|
| if ($mickymouse==".")
| {

which assumes that a dot will always denote cents, which doesn't make sense.
;^)


Krustov
Guest
 
Posts: n/a
#7: Aug 28 '07

re: round number to the nearest...


<comp.lang.php>
<>
<Mon, 27 Aug 2007 18:57:37 -0700>
<1188266257.277944.233110@o80g2000hse.googlegroups .com>
Quote:
Quote:
if ($dwarfs==0) {$poop=0;}
if ($dwarfs==1) {$poop=0;}
if ($dwarfs==2) {$poop=0;}
if ($dwarfs==3) {$poop=5;}
if ($dwarfs==4) {$poop=5;}
if ($dwarfs==5) {$poop=5;}
if ($dwarfs==6) {$poop=5;}
if ($dwarfs==7) {$poop=0;}
if ($dwarfs==8) {$poop=0;}
if ($dwarfs==9) {$poop=0;}

$albundy=$snowwhite . $poop;
print "albundy = $albundy <br><br>";

}

?>

--
(c) The Amazing Krustov
>
Krustov,
>
I am loving the script but I think I will have to work on the $poop a
bit. lol, When I get to a situation where the 1st digit after the
decimal needs to be rounded up, it still rounds down. This adds even
more diffuculty to it when I have a number like 5.98 as the entire
number will round to 6.00. Thanks for the help!
>
Dont you mean it will round down to 5.90 ? .


if ($dwarfs==7) {$poop="plop";}
if ($dwarfs==8) {$poop="plop";}
if ($dwarfs==9) {$poop="plop";}

if ($poop=="0")
{
$albundy=$snowwhite . $poop;
print "albundy = $albundy <br><br>";
}

if ($poop=="5")
{
$albundy=$snowwhite . $poop;
print "albundy = $albundy <br><br>";
}

if ($poop=="plop")
{
$albundy=$snowwhite . "0";
$albundy=$albundy+0.10;
print "albundy = $albundy <br><br>";
}

Havent tested the +0.10 and it probably wont work .


--
(c) The Amazing Krustov
Closed Thread


Similar PHP bytes