Solved

[PHP] Select variable closest to 0? show me

Posted on 2004-09-28
8
342 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
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
What is wrong with the below insert statement. Getting error when executing. 5 59
Help Required 3 135
batch file or script 4 66
MySQL programmer starter 25 65
A short article about problems I had with the new location API and permissions in Marshmallow
This is about my first experience with programming Arduino.
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 …

752 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