Solved

[PHP] Select variable closest to 0? show me

Posted on 2004-09-28
8
348 Views
Last Modified: 2010-04-17
I have some code which contains two variables.

How can I check which one is closest to 0? My variables can be negative and positive hence why i need it to be 0 and work whatever the number is.

Could you show me an example of the code.
thanks
0
Comment
Question by:georgecooldude
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
  • 2
8 Comments
 
LVL 4

Accepted Solution

by:
DaveyEss earned 20 total points
ID: 12167676
You need to use the abs function in php

The following code gives an example of what to do.

<?php
$val1 = 7;
$val2 = -5;

echo "closer to zero ";

if (abs($val1) > abs($val2)) {
   echo $val2;
}
else {
   echo $val1;
}
?>
0
 
LVL 5

Author Comment

by:georgecooldude
ID: 12167779
DaveyEss,

I just tryed that but it came up with my postive value closest to 0 when infact I had a negative value closer.


3
2
1
0 - This being the center point
-1
-2
-3

Any ideas how i can do that? Maybe I need to take both values and divde by one and then check which is closest to 0? This would then work with your above code? Am I correct in thinking this?

If so could you show me how i could do that?
0
 
LVL 4

Expert Comment

by:DaveyEss
ID: 12167828
What are the positive and negative values that didn't work?
0
Optimize your web performance

What's in the eBook?
- Full list of reasons for poor performance
- Ultimate measures to speed things up
- Primary web monitoring types
- KPIs you should be monitoring in order to increase your ROI

 
LVL 5

Author Comment

by:georgecooldude
ID: 12167871
They were

-22200
 24600

and it returned the result of 24600
0
 
LVL 4

Expert Comment

by:DaveyEss
ID: 12167888
On my test, the following code returns -22200.  Does yours do that?  I have saved the file as a php web page (test.php) and then executed it in the browser.

The output I get is "closer to zero -22200"


<?php
$val1 = 24600;
$val2 = -22200;

echo "closer to zero ";

if (abs($val1) > abs($val2)) {
   echo $val2;
}
else {
   echo $val1;
}
?>
0
 

Expert Comment

by:Daniel_Iankov
ID: 12167978
Well the above statement should work, but if you say that the abs function is not working i suppose that
<?php
$val 1 = -3;
$val 2 = 5;

if($val1*$val2>0){  //same allinment
      if(($val1-$val2)*$val1 > 0){
           echo $val2;
      } else {
           echo $val 1;
      }

} else {
     if (($val1+$val2)*$val1 >0){
         echo $val2;
     } else {
         echo $val1;
     }
}  
?>
0
 
LVL 5

Author Comment

by:georgecooldude
ID: 12168054
My mistake.

I had assigned a variable two values by mistake in an include and it was making the figure larger than it should have been.

Thanks for your help.

And thanks Daniel :-) I only noticed your reply after I refreshed the page when I awarded the point.
0
 

Expert Comment

by:Daniel_Iankov
ID: 12168162
NP:)
0

Featured Post

Get 15 Days FREE Full-Featured Trial

Benefit from a mission critical IT monitoring with Monitis Premium or get it FREE for your entry level monitoring needs.
-Over 200,000 users
-More than 300,000 websites monitored
-Used in 197 countries
-Recommended by 98% of users

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This is about my first experience with programming Arduino.
Although it can be difficult to imagine, someday your child will have a career of his or her own. He or she will likely start a family, buy a home and start having their own children. So, while being a kid is still extremely important, it’s also …
An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …
Introduction to Processes

623 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question