1 Laatst bewerkt door mimorek (19 Jun 2017 08:48:23)

Onderwerp: Python rond vaag af

Kan iemand de output hieronder verklaren?
Kijk bij "7/3", "8/3", "10/3" en "11/3".

Die afrondingsregels heb ik niet geleerd.

$ python3.4
Python 3.4.2 (default, Oct  8 2014, 13:14:40) 
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 1/3
0.3333333333333333
>>> 2/3
0.6666666666666666
>>> 3/3
1.0
>>> 4/3
1.3333333333333333
>>> 5/3
1.6666666666666667
>>> 6/3
2.0
>>> 7/3
2.3333333333333335
>>> 8/3
2.6666666666666665
>>> 9/3
3.0
>>> 10/3
3.3333333333333335
>>> 11/3
3.6666666666666665
>>> 12/3
4.0
>>> 13/3
4.333333333333333
>>> 14/3
4.666666666666667
>>> 15/3
5.0
>>> 16/3
5.333333333333333
>>> 17/3
5.666666666666667
>>> 18/3
6.0
>>> 19/3
6.333333333333333
>>> 20/3
6.666666666666667
>>> 

2 Laatst bewerkt door devrandom (19 Jun 2017 09:05:33)

Re: Python rond vaag af

https://docs.oracle.com/cd/E19957-01/80 … dberg.html

tl;dr in leken-taal: floating point-getallen zijn niet exact. Stel dat je getallen tussen de 0 en 1 wilt representeren in 32-bits. Er is een oneindig aantal reële getallen tussen de 0 en 1, maar er kan slechts een eindig aantal waarden in 32 bits opgeslagen worden. Gevolg: een oneindig aantal getallen tussen 0 en 1 kan niet exact gerepresenteerd worden en wordt afgerond naar het (gewoonlijk) dichtstbij liggende getal dat wel gerepresenteerd kan worden.

Neem nu het voorbeeld van 7/3. 2.3333333333333335 is het getal dat het dichtst bij 2.3333333333333333 ligt, dat wel gerepresenteerd kan worden.

macOS/iOS en potentieel Fedora fanboy.

3

Re: Python rond vaag af

Oke. Dank je.