Similarly, to find the remainder the operator % is used. For example, to find the remainder when 7 is divided by 3 we write 7 % 3 which gives an answer of 1 . Example: Let x, y, z are integer variables and c is a float variable. Also let x = 9, y = 11, z = 16. Then c = x / 5 + y / 2 + z / 5 will give the answer as 9 (1+5+3) and not 10.5 (1.8+5.5+3.2). But if we write c = (float) x / (float) 5 + (float) y / (float) 2 + (float) z / (float) 5 OR c = (float) x / 5 + y / (float) 2 + z / (float) 5 we will get the correct answer of 10.5 and it does not change the x, y, z to be of float type . They will remain as integers only. Consider the case where z is of type float . Then there is no need for placing (float) before z and before 5 because if any one of the operand is float the answer will also be of float type. Consider another example , int i=7, x=11 , y=13 ; float z, a , b ; a = x / 3 + y / 2.5 – z / 3 ; b = i / 2.5 + x / 4 + y / 1.2 ; can be written to get the correct answer as: a = (float) x / 3 + y / 2.5 – z / 3 ; b = i / 2.5 + (float) x / 4 + y / 1.2 ; Note that there is no need of (float) cast for y / 2.5 and i / 2.5 because if any one of the operands is float the other is automatically converted to float but only during the operation and not always . Rules for Evaluation of Arithmetic expressions: 1) All expressions in parentheses must be evaluated separately. Nested parenthesized expressions must be evaluated from the inside out, with the innermost expressions evaluated first. Page 2 of 7
2) The operator precedence rule: Operators in the same sub expression are evaluated in the following order: Unary + and – are evaluated first. *, /, % are evaluated next . binary operator + and – are evaluated last . 3) The associativity rule: Unary operators in the same sub expression and at the same precedence level (such as + and -) are evaluated right to left (right associativity).
- Spring '10
- Algebra, Expression