Solved

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

Posted on 2008-10-12
9
209 Views
Last Modified: 2013-12-14
why is it that, (25%3/3.0) is  0.333333

which operator takes precedence?
0
Comment
Question by:Emmatee1
  • 5
  • 2
9 Comments
 
LVL 12

Accepted Solution

by:
jazzIIIlove earned 500 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

by:jazzIIIlove
ID: 22698224
high to low order:
1)...
2)...
3)...
0
 
LVL 13

Expert Comment

by:josgood
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

by:DrunkenELF
ID: 22698258

Dear emmatee,

[/] Division has precedence than modulus [%]

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

Cheers!
 D-ELF
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 12

Expert Comment

by:jazzIIIlove
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

by:josgood
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

by:jazzIIIlove
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

by:jazzIIIlove
ID: 22772066
come on...
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

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. …
How to install Selenium IDE and loops for quick automated testing. Get Selenium IDE from http://seleniumhq.org (http://seleniumhq.org) Go to that link and select download selenium in the right hand columnThat will then direct you to their downlo…
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
The viewer will learn how to use NetBeans IDE 8.0 for Windows to connect to a MySQL database. Open Services Panel: Create a new connection using New Connection Wizard: Create a test database called eetutorial: Create a new test tabel called ee…

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now