Significant digits

P

pw

Running this on MSWin2000 PC, I show 6 only digits for float and double.
i.e. l_float and l_double show 33333.1 (6 only digits).

Is it possible to increase/alter this?

Code:
// Test ints, floats and doubles
#include <iostream>
using namespace std;

int main()
{
int l_int;
float l_float;
double l_double;

l_int = 33333.1415922662266;
l_float = l_int;
l_double = l_int;

cout << "Define int: " << l_int << endl;
cout << "l_int: " << l_int << endl;
cout << "l_float: " << l_float << endl;
cout << "l_double: " << l_double << endl;
cout << endl;

l_float = 33333.1415922662266;
l_int = l_float;
l_double = l_float;

cout << "Define float: " << l_float << endl;
cout << "l_int: " << l_int << endl;
cout << "l_float: " << l_float << endl;
cout << "l_double: " << l_double << endl;
cout << endl;

l_double = 33333.1415922662266;
l_int = l_double;
l_float = l_double;

cout << "Define double: " << l_double << endl;
cout << "l_int: " << l_int << endl;
cout << "l_float: " << l_float << endl;
cout << "l_double: " << l_double << endl;
cout << endl;

l_double = 333333333.1415922662266;
l_int = l_double;
l_float = l_double;

cout << "Define double: " << l_double << endl;
cout << "l_int: " << l_int << endl;
cout << "l_float: " << l_float << endl;
cout << "l_double: " << l_double << endl;
cout << endl;

return 0;
}
 
J

Josephine Schafer

pw said:
Running this on MSWin2000 PC, I show 6 only digits for float and double.
i.e. l_float and l_double show 33333.1 (6 only digits).

Is it possible to increase/alter this?
Sure. std::setprecision () is what you are looking for.
 
J

John H. Guillory

Running this on MSWin2000 PC, I show 6 only digits for float and double.
i.e. l_float and l_double show 33333.1 (6 only digits).

Is it possible to increase/alter this?

Code:
// Test ints, floats and doubles
#include <iostream>
using namespace std;

int main()
{
int l_int;
float l_float;
double l_double;

l_int = 33333.1415922662266;
l_float = l_int;
l_double = l_int;

cout << "Define int: " << l_int << endl;
cout << "l_int: " << l_int << endl;
cout << "l_float: " << l_float << endl;
cout << "l_double: " << l_double << endl;
cout << endl;[/QUOTE]



If you even get the .1, your compiler must be whacked out.... Consider
what you are doing here.... Storing a decimal number into an int
(I_int), results in I_int equal to 33333.  I_float then gets that
value stored into it.  (33333).  I_double, then gets the 33333 stored
into it.... Consider changing it to:

I_double = 33333.1415922662266;
I_float = I_double;
I_int = I_float;


etc, then printing it and you should then notice better accuracy....
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,736
Latest member
zacharyharris

Latest Threads

Top