Message299497
Huan,
This isn't a bug: see the earlier comments from Zachary Ware on this issue for explanations. When you compute `rounded(1.45, 0.1)`, you convert the *float* 1.45 to a Decimal instance. Thanks to the What You See Is Not What You Get nature of binary floating point, the actual value stored for 1.45 is:
1.4499999999999999555910790149937383830547332763671875
Conversion from float to Decimal is exact, so the Decimal value you're working with is also a touch under 1.45:
>>> from decimal import Decimal
>>> Decimal(1.45)
Decimal('1.4499999999999999555910790149937383830547332763671875')
And so it correctly rounds down to `1.4`. |
|
Date |
User |
Action |
Args |
2017-07-30 11:27:45 | mark.dickinson | set | recipients:
+ mark.dickinson, valhallasw, umedoblock, zach.ware, Huan |
2017-07-30 11:27:45 | mark.dickinson | set | messageid: <1501414065.91.0.90985112241.issue24827@psf.upfronthosting.co.za> |
2017-07-30 11:27:45 | mark.dickinson | link | issue24827 messages |
2017-07-30 11:27:45 | mark.dickinson | create | |
|