id summary reporter owner description type status milestone component version severity resolution keywords cc 12527 cpp_bin_float: Anal fixation. Part 3. Double rounding when result of convert_to() is a subnormal Michael Shatz John Maddock "When convert_to() applied to numbers in subnormal range the value is initially rounded to 53-bit precision and then rounded again, by ldexp() routine, to the target precision which is lower than 53 bits. The problem is exactly the same as the well-known problem that makes it virtually impossible to produce 100% IEEE-754 compliant results with Intel x87 FPU. Because of double rounding, resulting subnormals are not always the closest representable double-precision numbers to the original value or, in case of tie, they are not always even. Exactly the same problem applies to convert_to() The attached files demonstrate the problem and one possible workaround, not necessarily that fastest, but likely the simplest. " Bugs reopened To Be Determined multiprecision Boost 1.62.0 Problem