'Can you print an integer in scientific notation?

I know that in C, you can print floats and doubles in scientific notation using "%e" and "%le" respectively and that you can print integers using "%d". Is there a way to print integers using scientific notation? I tried "%de", but that didn't work. For instance, I want 6000000 to print as 6e+06.



Solution 1:[1]

Can you print an integer in scientific notation?

A simple approach is to convert to a double and then print. @Eric Postpischil

printf("%e\n", (double) some_int_type_object);

This is insufficient when the integer precision and value exceeds double - typically about 53 bits.

Recommend to use long double to handle wider integer types. This still may not meet precision requirements.

printf("%Le\n", (long double) some_integer_type_object);

To portably handle 64-bit integers obliges custom code.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1