round_amount: Perls Repräsentationsalgorithmus fürs exakte Runden nutzen
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 25 Sep 2014 10:31:58 +0000 (12:31 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 25 Sep 2014 12:46:21 +0000 (14:46 +0200)
commitadd0f69be977025f141c7ddb4803f642980a87a0
tree3a12e99533fb6e523f34ab8d962cc4812d1bb56b
parent0c537bffbf60f078202ca72977b3e35f2e0f0fd7
round_amount: Perls Repräsentationsalgorithmus fürs exakte Runden nutzen

Als Erläuterung paste ich schlicht den relevanten Teil des Kommentars,
der nun auch in der Funktion steht:

Trying to round with more precision first only shifts the problem to rarer
cases, which nevertheless exist.

Now we exploit the presentation rounding of Perl. Since it really tries hard
to recognize integers, we double $amount, and let Perl give us a representation.
If Perl recognizes it as a slightly too small integer, and rounds up to the
next odd integer, we follow suit and treat the fraction as .5 or greater.
SL/Form.pm
t/form/round_amount.t