|
@ -6,6 +6,7 @@ |
|
|
#include <cctype>
|
|
|
#include <cctype>
|
|
|
#include <cstdlib>
|
|
|
#include <cstdlib>
|
|
|
#include <cstring>
|
|
|
#include <cstring>
|
|
|
|
|
|
#include <sstream>
|
|
|
|
|
|
|
|
|
using namespace std; |
|
|
using namespace std; |
|
|
using namespace cln; |
|
|
using namespace cln; |
|
@ -33,7 +34,7 @@ main (int argc, char * argv[]) |
|
|
cout << "pi (cln) " << CL_VERSION_MAJOR << "." << CL_VERSION_MINOR << endl; |
|
|
cout << "pi (cln) " << CL_VERSION_MAJOR << "." << CL_VERSION_MINOR << endl; |
|
|
cout << "Written by Bruno Haible." << endl; |
|
|
cout << "Written by Bruno Haible." << endl; |
|
|
cout << endl; |
|
|
cout << endl; |
|
|
cout << "Copyright (C) 1998-2001 Bruno Haible." << endl; |
|
|
|
|
|
|
|
|
cout << "Copyright (C) 1998-2007 Bruno Haible, 2000-2007 Richard B. Kreckel." << endl; |
|
|
cout << "This is free software; see the source for copying conditions. There is NO" << endl; |
|
|
cout << "This is free software; see the source for copying conditions. There is NO" << endl; |
|
|
cout << "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." << endl; |
|
|
cout << "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." << endl; |
|
|
cout << endl; |
|
|
cout << endl; |
|
@ -53,12 +54,23 @@ main (int argc, char * argv[]) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
cl_F p = pi(float_format(digits)); |
|
|
|
|
|
// make CLN believe this number has default_float_format to suppress
|
|
|
|
|
|
// exponent marker which would be quite boring for 3.1416...
|
|
|
|
|
|
cl_print_flags cpf; |
|
|
|
|
|
cpf.default_float_format = float_format(p); |
|
|
|
|
|
print_real(cout, cpf, p); |
|
|
|
|
|
|
|
|
if (digits) { |
|
|
|
|
|
cl_F p = pi(float_format(digits)); |
|
|
|
|
|
// make CLN believe this number has default_float_format to suppress
|
|
|
|
|
|
// exponent marker which would be quite boring for 3.1416...
|
|
|
|
|
|
cl_print_flags cpf; |
|
|
|
|
|
cpf.default_float_format = float_format(p); |
|
|
|
|
|
// We cannot print directly because people get dazed and confused
|
|
|
|
|
|
// when they see gratuitous digits (Debian Bug #286266.) And we
|
|
|
|
|
|
// must not "fix" the output routine because print-read consistency
|
|
|
|
|
|
// is at stake. As a workaround, print into a buffer so we can chop
|
|
|
|
|
|
// off characters from its end.
|
|
|
|
|
|
stringstream buf; |
|
|
|
|
|
print_real(buf, cpf, p); |
|
|
|
|
|
istreambuf_iterator<char> i = buf.rdbuf(); |
|
|
|
|
|
while (--digits+2>0) |
|
|
|
|
|
cout << *(i++); |
|
|
|
|
|
} |
|
|
cout << endl; |
|
|
cout << endl; |
|
|
|
|
|
|
|
|
return 0; |
|
|
return 0; |
|
|