if statement condition checking

# if statement condition checking

• Thursday, March 29, 2012 7:13 AM

hi,

i have three variables

float x,y,z,a,b,c;

z = a * (b/c);

if (z == 0.1)

{

y = 0.5x

}

else if (z ==0.5)

{

y = 1.5x

}

my doubt starts now............... my requirement is as follows.........

if the result calculated from the expression for z as 0.25, how should i check my equation to calculate y;

to which statement it goes..........

its total confusion to me to explain this problem

ppdev

### All Replies

• Thursday, March 29, 2012 8:40 AM

i have three variables

float x,y,z,a,b,c;

6 actually!

z = a * (b/c);
if (z == 0.1)

OK, the first thing to realise here is that you shouldn't test
floating point values for equality - they're rarely ever equal because
they're only ever approximately a value. Instead you should check
they're within some range of the value.

my doubt starts now............... my requirement is as follows.........
if the result calculated from the expression for z as 0.25, how should i check my equation to calculate y;
to which statement it goes..........

It goes to none of the ones you've shown.

Dave

• Thursday, March 29, 2012 9:32 AM

```// test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "iostream.h"
int main(int argc, char* argv[])
{
printf("Hello World!\n");

float a,b,c,x,y,z;
//	cin >> a >> b >> c >> x ;
printf("\n enter the values z and x are:\n");

cin >> z >> x ;
//	z= a * b / c;
printf("\n the values z and x are:\n");
cout << z << " " << x << " ";
if(z < 0.25)
//	if(z == 0.1)
{
if(z<0)
{
printf("\n the z value is not in the range of 0 to 0.25\n");
}
else
{
y = 0.1 * x;
}
}
else if(z == 0.25 || z <= 0.5)
{
y = 0.5 * x;
}
else
{
printf("\n enter valid data\n");
}
cout << y <<" " << x << " " << z ;

return 0;
}```

i tried like this can u suggest me is it a good way to do this
• Thursday, March 29, 2012 9:54 AM

else if(z == 0.25 || z <= 0.5)

Presumably you intended 0.25 < z < 0.5?
In fact you'd only need to have:

else if ( z <= 0.5)

since the earlier condition handled values < 0.25.

i tried like this can u suggest me is it a good way to do this

As I don't know what the requirement is, I don't know.

Dave

• Marked As Answer by Thursday, March 29, 2012 10:09 AM
•