|
Prev: Perl Pattern matching
Next: mismatch between Perl 5.6 and Perl 5.8 in printing high precision values.
From: vivekanand.naik on 2 Apr 2008 06:21 printf("%.32g\n",0.99999999976716936); Perl 5.6.1 output: 0.99999999976716936 --> GOOD Perl 5.8.6 output: 0.99999999976716925 --> ERROR Any reason for such mismatch ? Please let me know how to avoid that or any alternative approach if any. Thanks Vivek
From: RedGrittyBrick on 2 Apr 2008 07:02 vivekanand.naik(a)gmail.com wrote: > printf("%.32g\n",0.99999999976716936); > > Perl 5.6.1 output: > 0.99999999976716936 --> GOOD > > Perl 5.8.6 output: > 0.99999999976716925 --> ERROR > > > Any reason for such mismatch ? > Please let me know how to avoid that or any alternative approach if > any. > print Math::BigFloat->new("0.99999999976716936")->bstr(); -- RGB
From: szr on 2 Apr 2008 11:41
vivekanand.naik(a)gmail.com wrote: > printf("%.32g\n",0.99999999976716936); > > Perl 5.6.1 output: > 0.99999999976716936 --> GOOD > > Perl 5.8.6 output: > 0.99999999976716925 --> ERROR I get: $ perlall -e 'printf("%.32g\n",0.99999999976716936);' <perl5.10.0> 0.99999999976716935997820764892019 <perl5.8.8 > 0.99999999976716935997820764892019 <perl5.8.2 > 0.9999999997671692453238279085781 <perl5.8.0 > 0.9999999997671692453238279085781 <perl5.6.1 > 0.99999999976716935634613037109375 -- szr |