From: Paul A Bristow (pbristow_at_[hidden])
Date: 2006-05-02 10:48:52
I have reported this as a bug to Microsoft
with the following reply:
"Resolved as By Design by Microsoft on 2006-04-19 at 13:50:29
Thanks for the report. We don't agree with the premise of your bug. Because
of the imprecise nature of floating point, exact comparisions are never
appropriate. Round-tripping through all the machinery of input and output
passes through various representations, and cannot be guaranteed to be
identical to the original.
Visual C++ Libraries
The Standard is imprecise on this issue, but I feel it is a very poor do
that such a bizarre small range of values should be wrong.
Feels like an off-by-one rounding bug to me.
Does anyone have the Pukker Dinkumware library and would like to carry out
the same test on their version?
| -----Original Message-----
| From: boost-bounces_at_[hidden]
| [mailto:boost-bounces_at_[hidden]] On Behalf Of Paul A Bristow
| Sent: 06 April 2006 17:34
| To: boost_at_[hidden]
| Subject: Re:
| point values
I have posted a fuller test to the vault.
| PS A possible workaround:
| std::stringstream s;
| ss << scientific << output_value;
| works for all cases tried (100000000).
| This will increase the size of the XML (for exmaple) archive file, of
| course, but...
| PPS I note that if you repeatedly serialize and restore then
| you may get a 1
| bit creep up each time - it could build up to significant differences.
| Paul A Bristow
| Prizet Farmhouse, Kendal, Cumbria UK LA8 8AB
| Phone and SMS text +44 1539 561830, Mobile and SMS text +44
| 7714 330204
| mailto: pbristow_at_[hidden] http://www.hetp.u-net.com/index.html
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk