I am confused with the conversion limitations between the three: ints, floats and double.

The question is whether the following operations give the same result or not (yield true or not).

For instance we have an integer x:
Would (Float)(x) == (float)(double)(x)

I believe that should be true, as the int would get converted into double perfectly. And similar rounding would take place in conversion between int-->float and double--->float. Yea, correct reasoning?

But what about between: (d is short for double)
1)(dx - dy) = double(x - y)
2)(dx * dy) * dz = dx * (dy * dz)

I know 2) is not true, as floating point numbers are not associative. But I can't think of an example where equation 2) shoudl return false and prove my answer.

Any help would be appreciated!

>>Would (Float)(x) == (float)(double)(x)

Maybe yes, and maybe no. == does not always work with floats and doubles due to the way they are stored in memory. Testing for equality with floats/doubles is always unreliable and risky business.

>>I know 2) is not true, as floating point numbers are not associative
What gave you that idea? The statement is true regardless of the data type of dx and dy.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.