https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113455
Bug ID: 113455 Summary: ROUNDING: IEEE Standard: Missing decimal rounding mode 'nearest, ties away from zero' for decimalxxx datatypes. Product: gcc Version: 13.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: newbie-02 at gmx dot de Target Milestone: --- hi @all, most likely 'me bad', but searched too long and need professional help. Short - just need a tip: A.) me blind, 'ties away' is available, in that case how to activate? or B.) no hope, 'ties away' is NOT available, in that case evtl. 'why?', and if planned for the future? Or doe's someone know a workaround? what I'd like to have: '= 8.000000000000001DD + 0.5E-15DD' -> 8.000000000000002E+00 '= 8.000000000000002DD + 0.5E-15DD' -> 8.000000000000003E+00 not by 'round up', but by 'round nearest, ties away from zero'. what I get instead: '= 8.000000000000001DD + 0.5E-15DD' -> 8.000000000000002E+00 '= 8.000000000000002DD + 0.5E-15DD' -> 8.00000000000000**2**E+00 the second calculation suffers from 'ties to even' rounding mode. 'The standard' IEEE 754 requires a decimal rounding mode 'nearest, ties away from zero' since 2008, see http://www.dsc.ufcg.edu.br/~cnum/modulos/Modulo2/IEEE754_2008.pdf there '4.3.3 Rounding attribute requirements'. I **am** aware that gcc / glibc don't claim full standard compatibility for 'decimals', but consider the rounding mode one of the most important advantages. I **am** aware that 'ties away' is in effect for 'round' operations. But couldn't find how to activate for the implicit rounding in calculations. I **am** aware that there are near religious fanatic discussions about which rounding is 'better', I don't want to start similar, just get qualified info. Posted here despite I know it's not a user support forum, think the info is relevant for others too. In case of relevant: Intel, Linux, gcc.