Ciao a tutti!
Premetto che non sono un programmatore, che ho appena iniziato a studiare Python e mi sono iscritto a questo forum solo da qualche giorno.
Abbiate quindi pazienza e perdonatemi sin d'ora se non sono molto chiaro nel presentare il problema che ho incontrato.
Stavo giocherellando con la shell di Python 3.8.5 e provavo a scrivere semplici comandi e a fagli eseguire semplici operazioni matematiche
quando mi sono accorto che, dividendo un numero non intero per una potenza di dieci, alle volte ottengo un risultato non corretto.
Forse mi spiego meglio con degli esempi dalla shell per Windows 7:
Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> 423.321/100
4.233210000000001
>>> 56595.6549269/10000
5.6595654926900005
Questo però non succede sempre, infatti:
>>> 423.321/1000
0.423321
>>> 791.463/100
7.91463
Provando con alcune versioni presenti online, ho appurato che il problema si manifesta solo con Python 3.X.X
mentre se uso Python 2.7.X il risultato è sempre giusto.
Ho cercato di capire anche se il problema potesse essere causato dal diverso formato tra 423.321 che è un float e 100 che è un int
ma anche convertendo 100 in float il risultato non cambia:
Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>
=================== RESTART: C:/Users/XXX/Desktop/div.py
===================
423.321 <class 'float'>
100 <class 'int'>
4.233210000000001 <class 'float'>
>>>
=================== RESTART: C:/Users/XXX/Desktop/div1.py
===================
423.321 <class 'float'>
100.0 <class 'float'>
4.233210000000001 <class 'float'>
>>>
Sbaglio io qualcosa? Facile per la mia età ma se il problema è reale, potrebbe affliggere anche altri tipi di operazioni matematiche.
Voi che ne pensate?
Grazie fin d'ora per le eventuali risposte.
PY62