Ottengo un float dividendo due numeri. So che i numeri sono divisibili, quindi ho sempre un numero intero, solo che è di tipo float. Tuttavia, ho bisogno di un tipo int reale. So che lo int()
spoglia i decimali (cioè l'arrotondamento del pavimento). Sono preoccupato dal fatto che i galleggianti non sono esatti, se lo faccio ad es. int(12./3)
o int(round(12./3))
può finire come 3 invece di 4 perché la rappresentazione in virgola mobile di 4 potrebbe essere 3.9999999593519561 (non è, solo un esempio).Il lancio di un intero "intero" su int restituirà sempre il numero intero più vicino?
Ciò accadrà mai e posso assicurarmi che non accada?
(chiedo perché mentre rimodellare una matrice NumPy, ho ricevuto un avviso dicendo che la forma deve essere interi, non galleggia.)
perché non usi semplicemente la divisione di interi? – lejlot
Sì, ci ho pensato subito dopo aver postato. Stava per aggiornare la domanda, ma lascerei che il tuo commento parlasse invece. – cmeeren
Tuttavia, se lo faccio ad es. 3.5/0.5 quindi non è possibile. (Io no, divido due interi, ma per ragioni ...) – cmeeren