9

C - Print float values

 2 years ago
source link: https://www.codesd.com/item/c-print-float-values.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

C - Print float values

advertisements

I have a C++ program that takes in values and prints out values like this:

getline(in,number);
cout << setw(10) << number << endl;

I have an equivalent C program that takes in values and prints out like so:

fscanf(rhs, "%e", &number);
printf("%lf\n", number);

But while the C++ program prints out, 0.30951 the C program prints out 0.309510. More examples: C++: 0.0956439 C: 0.095644. It seems to print the same results as long as the value is 7 digits long, but if its shorter the 7 digits, it adds an extra 0 at the end. And if its longer than 7 digits, it rounds down to 6 digits. I would like the C results to match the C++ program. Any help would be appreciated.

Thanks.

Note: number is a float and number are read from a file.


Take advantage of the length and precision specifiers in C formatted print statements:

printf( "%6.4lf", number );

Prints four decimal places in a "cell" six characters wide.

You can use a wildcard character for either length or precision to provide that value at runtime:

int precision = 4;

printf( "%6.*lf", precision, number );


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK