?
Solved

Imitating % for ints

Posted on 2004-09-13
8
Medium Priority
?
250 Views
Last Modified: 2012-05-05
Hi,

I need to imitate the '%' operator that C offers.
But I also need it to work with floats.
The floats isn't the problem.
What I need it the code that imitates '%' (for negative number too, of course).

Thanks in advance.
0
Comment
Question by:slavikn
[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
  • Learn & ask questions
  • 4
  • 4
8 Comments
 
LVL 46

Expert Comment

by:Sjef Bosman
ID: 12043191
How far did you get yourself? Converting a number to a string isn't too difficult.
0
 
LVL 1

Author Comment

by:slavikn
ID: 12043207
strings? hmm....

while (a >= b)
   a -= b;

but this doesn't work if a and b are negative.
0
 
LVL 46

Accepted Solution

by:
Sjef Bosman earned 100 total points
ID: 12043260
Ahem :-$ sorry! I thought you meant the % in printf... Never mind...

a%b = a-(int)(a/b)*b

where \ is the integer divide operator. Try if it works for negative numbers.
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 1

Author Comment

by:slavikn
ID: 12043509
> Try if it works for negative numbers.

Yes, it does. Thanks!
0
 
LVL 1

Author Comment

by:slavikn
ID: 12045120
heh   :-D
'fmod' from 'math.h' does exactly the same  :-))
'man pages' say it uses same formula  :-))
0
 
LVL 46

Expert Comment

by:Sjef Bosman
ID: 12045371
They didn't get it from me ;-)  Nor did I do a man fmod, but maybe I will...
0
 
LVL 1

Author Comment

by:slavikn
ID: 12045445
Heh ;-)   I wrote this to say two things:
1) your formula is correct.
2) I could use a ready-made function instead.
:-)))
0
 
LVL 46

Expert Comment

by:Sjef Bosman
ID: 12045663
Better to use fmod, since converting to int will not work for numbers that go beyond integer precision. Probably fmod is then defined as a-floor(a/b)*b. Or so.

Sjef :)
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

This tutorial is posted by Aaron Wojnowski, administrator at SDKExpert.net.  To view more iPhone tutorials, visit www.sdkexpert.net. This is a very simple tutorial on finding the user's current location easily. In this tutorial, you will learn ho…
Summary: This tutorial covers some basics of pointer, pointer arithmetic and function pointer. What is a pointer: A pointer is a variable which holds an address. This address might be address of another variable/address of devices/address of fu…
The goal of this video is to provide viewers with basic examples to understand opening and writing to files in the C programming language.
The goal of this video is to provide viewers with basic examples to understand how to use strings and some functions related to them in the C programming language.
Suggested Courses

777 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