Ho un doppio che è un intervallo di tempo in secondi. I valori validi sono 0.0, 0.5, 1.0, 1.5, ecc.Come convertire in modo sicuro questo doppio in un int?
Ora ho bisogno di convertire questo valore in un int. Ma non posso fare questo:
int converted = (int)theDouble;
Perché ciò che può accadere è che il mio doppio a causa di errori di virgola mobile è ,999,999999 millions piuttosto che 1,000 milioni. Sarebbe solo tagliato la coda, e avremmo finito con 0 invece di 1. Inoltre, quando il mio doppio è 0.9, voglio un int che è 1. Quando è 1.1, voglio che l'int sia 1. Quando è 1,8, voglio che int sia 2.
C'è una funzione round() ma Xcode non mostra una documentazione per questo. L'intestazione dice solo che restituisce un doppio. Quindi non quello di cui ho bisogno.
Qual è il modo più sicuro per ottenere una rappresentazione int stretta di quel doppio? Sebbene sia un doppio, non avrò mai bisogno di una precisione maggiore di 0,5 o di una cifra frammentaria (non sono un genio della matematica e non conosco i termini scientifici esatti).