-
December 29th, 2010, 11:43 PM
#1
Order of multiplication matters?
I've been fooling around with C++ over the Winter break to grow my knowledge when I came across this....
Say I have a function that takes a scientific constant, a coefficient and a variable like pV=nRT using the universal gas constant or using PI for some trig function.
If I define pi using #define, get the radius as a param and the coeff is hard coded, I have to perform the math like so: diameter = 2(coeff) * radius(passed param) * pi(literal);
If I switch the order, I get an invalid type argument for unary * exception.
What exactly is going on here that causes this type of behavior?
Thanks.
-
December 30th, 2010, 01:14 AM
#2
Re: Order of multiplication matters?
First, please post real code that shows the problem. Descriptions of code isn't good enough -- we would like to see the actual code that you're attempting to run.
Secondly, order can matter, even though the different ordering should give you an equivalent answer if you calculated by hand. If you were to do the research, you will see many classical shool-book formulas have to be rewritten so that computing machines do not produce zero-divides, singularities, etc.
Regards,
Paul McKenzie
-
December 30th, 2010, 05:21 AM
#3
Re: Order of multiplication matters?
an invalid type argument for unary * exception
The star is used for two purposes in C:
- a multliplication of two numbers (a binary *)
- a reference to the content pointed by an address (a unary *)
Here, it seems the compiler is considering that the star is used for the second purpose, for some reasons I dont know until I can see the code (my guess is that there is a ";" at the end of #define PI ..., and this is not important if PI is used at the end of the formula, but it matters if PI is used before the end).
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|