Finding the number of digits
How do I find the number of digits in a number?
I'm trying to make my own square root algorithm,
and I want to break my number (ex: 123456)
into different sections (ex: 100000, 20000, 3000, etc.)
so I want to find the number of digits: 6
round the number to that many digits, and go from there.
and what should the number be? a string or a number?
i'd convert to a strong and use a len function. but thats not recomended as it limits your function to the base it was written in.
Something like this perhaps:
edit: Oh, I just read the rest of your question. Oluseyi is right, you really want to use / and % or even the infamous div function. But you should *really* consider doing the whole thing in binary instead, it'll be a whole lot easier/faster.
unsigned digits(unsigned value) { unsigned count, limit = 10; for(count = 1; value >= limit; ++count) { limit *= 10; } return count;}
But why do you need to number of decimal digits for a square root algorithm?edit: Oh, I just read the rest of your question. Oluseyi is right, you really want to use / and % or even the infamous div function. But you should *really* consider doing the whole thing in binary instead, it'll be a whole lot easier/faster.
You could just truncate log and add one:
floor(log(13.0)) + 1.0
floor(1.11394335) + 1.0
1.0 + 1.0
2.0
floor(log(13.0)) + 1.0
floor(1.11394335) + 1.0
1.0 + 1.0
2.0
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement