On 13/02/2020 21:33, Sergey Bylokhov wrote:
On 2/12/20 8:21 am, Alexey Ivanov wrote:
The bug report says that going from -0.15 to -0.10 does not allow
going back to -0.15. This happens because the result of this sequence
of operations cannot be represented exactly, or, in other words,
because of rounding errors; or rather the result is less than the set
minimal value.
Can we set the value of the spinner to the set minimal value instead
of disallowing the operation. I mean, after going up the displayed
value is -0.10; going down by 0.05 gives the result which is less
than the minimal value for the spinner, and thus going down is not
allowed. What if we set the value of the spinner to its minimal value
instead?
In this case, we will need to update all types including int. Isn't it
will be surprised that the spinner will show the value which is not
calculated as
"defaultValue + stepValue * stepCount"?
Wouldn't a comment make the intention clear?
Otherwise there will always be cases where Spinner with float/double
behaves unexpectedly, i.e. does not allow increasing/decreasing a value
where one expects it to.
This new approach should also work for int too; although it's redundant
as integer arithmetic is precise.
--
Regards,
Alexey