|
|
|
|
|
by mortoray
3822 days ago
|
|
This is the "correct" behaviour of `floor` obviously, but the unexpected part has to do with floating point accuracy and use domains. Numbers will end up slightly lower or higher than an expected value simply due to accuracy in calculations and minor differences in input. For example, suppose we have two UI elements, one with a width of 80% and the other expressed as a factor as 0.8. Depending on how specifically these are parsed and processed this may result in slightly different values. For the user creating the UI however they'd expect the same result. The epsilons I introduce into my floor/ceil code is meant to deal with these minor variations. |
|
Python only prints a decimal approximation to the true decimal value of the binary approximation stored by the machine. If Python were to print the true decimal value of the binary approximation stored for 0.1, it would have to display
That is more digits than most people find useful, so Python keeps the number of digits manageable by displaying a rounded value instead [1] https://docs.python.org/2/tutorial/floatingpoint.html