tags:

views:

109

answers:

3

I am dealing with a math example. I need to use 12 digit number for my code. So which datatype should i use, to use the number in my functions?

+3  A: 

64-bit integers (long, int64_t, unsigned long, uint64_t) should do the trick, or if you need decimals, double or long double.

Delan Azabani
If you need decimals you're out of luck in pure C; `double` and `long double` are floating point types, not decimal ones.
Joey
No. I *did* mention 64-bit integers too, which can hold well over 12 digits even when signed!
Delan Azabani
what should i use for example while printing them? "%ld" was for long as far i remembered?
DesperateCoders
Yes. `%ld` is the correct format specifier. Use `%lu` if it's an `unsigned long`, however.
Delan Azabani
Check out `<inttypes.h>`. It has printf() / scanf() format specifiers for the intX_t types (among others).
DevSolar
i did it long long tag and %lld done the trick.
DesperateCoders
You should not recommend `long` as a 64-bit type. It's 32-bit on most systems and the C standard only requires it to be at least 32-bit.
R..
A: 

While looking for a library called Bignum I've found this wiki page

hlynur
+2  A: 

If you have a 64-bit integer type, I'd go with that, since it gives you the (18 full digits) range:

−9,223,372,036,854,775,808 to
+9,223,372,036,854,775,807

For other tasks (even bigger integers or massive floating point values), I use GMP, the GNU multi-precision library. It's performance is impressive.

paxdiablo