On 9/13/19 7:23 AM, Andras Deak wrote:
I just want to add that you can use literal 16.055 to reproduce this:
import numpy as np np.set_printoptions(precision=2) np.array([16.055]).round(2) array([16.06]) np.array([16.055]) array([16.05])
I would think it has to do with "round to nearest even":
np.array(16.055) array(16.05) np.array(16.065) array(16.07) np.array(16.065).round(2) 16.07
But it's as if `round` rounded decimal digits upwards (16.055 -> 16.06, 16.065 -> 16.07), whereas the `repr` rounded to the nearest odd(!) digit (16.055 -> 16.05, 16.065 -> 16.07). Does this make any sense? I'm on numpy 1.17.2. (Scalars or 1-length 1d arrays don't seem to make a difference). Regards,
András
Isn't that just for consistency with Python 3 round()? I agree that the discrepancy with np.set_printoptions is not necessarily expected, except possibly for backwards compatibility. Phil