#include <iostream>
int main(int,char**){
const long double PiLD=3.1415926535897932384626433832795029L;
std::cout<<" 3.1415926535897932384626433832795029"<<std::endl;
std::cout.precision(70);
std::cout<<"LD="<<PiLD<<std::endl;
return 0;}
/*
Very bad quality of compilation of a floating point numbers.
3.1415926535897932384626433832795029
LD=3.14159265358979323851280895940618620443274267017841339111328125
Can be much more qualitative to calculate from other end.
#include <cmath>
for( ){
if( odd(last digit) ){
last digit -=1;
x+=0.5;}
x=std::ldexp(x,-1);
manual division of string representation /=2;}
result = x
*/
--
Summary: Very bad quality of compilation of a floating point
numbers.
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: lisp2d at lisp2d dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38704