Boost logo

Boost :

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.

Martyn Lovell
Development Lead
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:
| [boost][serialization]Serialisation/deserialisationoffloating-
| 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]

Boost list run by bdawes at, gregod at, cpdaniel at, john at