Print list (questa è strana)

print([0.7])
output: [0.69999999999999996]

print([0.3])
output: [0.29999999999999999]

come mai succede?

Sembra che in questo caso, cioe’ elementi di una lista, print usi una precisione di 17 cifre, che e’ un po’ tanto.
Va beh … puoi sempre formattare i numeri come preferisci se vuoi. :slight_smile:

ho dovuto usare la formattazione a due cifre decimali ma mi ritorna come stringa e ho dovuto riconvertire

output postato vale solo se i valori sono inseriti in una lista, mentre se si usa:

print(0.3)

output è 0.3

ma questa differenza dei print nella versione di Py 3.7 non succede ritorna sempre 0.3

In che senso ?

Si’, ho visto.
CPython non lo fa, sia versione 2 che 3.

Dev’essere una cosa di IronPython

quando si usa “{0:.2f}”.format() il risultato viene convertito in stringa
quindi se necessito di un di un valore numerico dovrò convertirlo

Diciamo che format genera una stringa, cioe’ ricava il testo formattato dal numero.

In questo caso non credo abbia senso, in quanto otterresti il valore di partenza, cioe’ il numero float corrispondente a 0.3.

Ma non c’è una funzione “round” che elimini le cifre in eccesso?

Si’, certo:

https://docs.python.org/2/library/functions.html#round

Ma se ho capito bene qui non ci sono numeri da arrotondare.

c’è c’è ho postata vuota solo per indicare la funzione che stavo usando

è vero round :yum: :yum: lo dico io che dopo una certa ora bisogna staccare ahahahaha