Solved

[PHP] Select variable closest to 0? show me

Posted on 2004-09-28
8
324 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
  • 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
Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

 
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

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

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

Suggested Solutions

This is an explanation of a simple data model to help parse a JSON feed
Whether you’re a college noob or a soon-to-be pro, these tips are sure to help you in your journey to becoming a programming ninja and stand out from the crowd.
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 …
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

786 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