Solved

# why is ( X = 25%3/3.0 ) is 0.3333333. which operator takes precedence?

Posted on 2008-10-12
Medium Priority
230 Views
why is it that, (25%3/3.0) is  0.333333

which operator takes precedence?
0
Question by:Emmatee1
[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
• 5
• 2

LVL 12

Accepted Solution

jazzIIIlove earned 2000 total points
ID: 22698222
1) ()
2) / % same order, so left to right
3) = it is right to left

suppose, we miswrite:
double x = (25/3%3.0);
or
int x = (25/3%3.0);

You got this:
'%' : illegal, right operand has type 'const double'

i think, it's clear...

Best regards...
0

LVL 12

Expert Comment

ID: 22698224
high to low order:
1)...
2)...
3)...
0

LVL 13

Expert Comment

ID: 22698234
% and / have the same precedence
See http://www.cppreference.com/wiki/operator_precedence, for example

Since they have the same precedence, they have left-to-right associativity.

So 25 % 3 = 1.0 is evaluated first.
Then 1.0 / 3.0
0

LVL 3

Expert Comment

ID: 22698258

Dear emmatee,

[/] Division has precedence than modulus [%]

FYI...
the order is
*  /  % Multiplication/division/modulus

Cheers!
D-ELF
0

LVL 12

Expert Comment

ID: 22698296
well...

# include <stdio.h>

int main()

{

int a = (12*2/3); //8
int b = (12/2*3); //18
int c = (12*2%6); //0
int d = (12%5*2); //4
int e = (12/2%3); //0
int f = (12%5/2); //1
printf("X: %d\n",a);
printf("X: %d\n",b);
printf("X: %d\n",c);
printf("X: %d\n",d);
printf("X: %d\n",e);
printf("X: %d\n",f);

return 1;
}

So, the precedence of operators is same precedence group but changed because from left-to-right process of the operators in the same precedence group...
0

LVL 13

Expert Comment

ID: 22698368
Agreeing with jazzIIIlove and quoting from the standard:

5.6  Multiplicative operators                               [expr.mul]

1 The multiplicative operators *, /, and % group left-to-right.
multiplicative-expression:
pm-expression
multiplicative-expression * pm-expression
multiplicative-expression / pm-expression
multiplicative-expression % pm-expression
0

LVL 12

Expert Comment

ID: 22698771
<<the order is
<<*  /  % Multiplication/division/modulus

No...

To clear the issue, they are in the SAME precedence group and the order is evaluated from left to right, if more than one is existent...

Best regards...
0

LVL 12

Expert Comment

ID: 22772066
come on...
0

## Featured Post

Question has a verified solution.

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

In our object-oriented world the class is a minimal unit, a brick for constructing our applications. It is an abstraction and we know well how to use it. In well-designed software we are not usually interested in knowing how objects look in memory. â€¦
Jaspersoft Studio is a plugin for Eclipse that lets you create reports from a datasource.  In this article, we'll go over creating a report from a default template and setting up a datasource that connects to your database.
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
The viewer will learn how to use and create keystrokes in Netbeans IDE 8.0 for Windows.
###### Suggested Courses
Course of the Month13 days, 11 hours left to enroll