Devo fare qualcosa di veramente evidentemente sbagliato, ma non riesco a vederlo.Objective-C, come posso convertire un double in un int?
risposta
Un doppio è un tipo C, non un oggetto Objective-C. Quindi si utilizza C getta:
double myDouble = 3.2;
int myInt = (int)myDouble;
Credo NSDouble è la controparte obiettivo C, per favore correggetemi se' m sbagliato –
@Joe D: C'è solo NSInteger (che è un typedef per int * o * long a seconda di 32/64 bit), ma c'è NSNumber, che include tipi di dati C in un oggetto. –
una semplice conversione di cui sopra è abbastanza buono anche se si potrebbe desiderare di utilizzare piano() o ceil() funzioni prima.
Ho trovato questo importante soprattutto nel contesto della domanda che richiede precisione per i pagamenti. Ho trovato numeri semplici come 230 convertiti in 229 dopo la conversione dei numeri interi. –
Credo che sia una cattiva pratica usare il floating point per la rappresentazione dei prezzi. Il modo corretto è usare interi (in centesimi, quindi il prezzo di $ 2 è 200) e convertirli in "2.00" solo in uscita. Inoltre Cocoa fornisce la classe NSDecimalNumber utilizzata da iOS per la rappresentazione dei prezzi. – Vladimir
intValue è un metodo per un'istanza NSNumber. Per il tipo di scala come int, double e float, non sono di tipo classe. Quindi, non hanno metodi. Alcune lingue come C# possono racchiudere int, o double come oggetto, e possono essere trasferite l'una all'altra da una sub-routine.
double myDouble = 3.2;
int myInt = @(myDouble).intValue;
esempio di codice Io in realtà uso:
NSNumber * percentLike1 = @(@(self.percentLike.doubleValue*100).integerValue);
-1: questo è un modo molto rivoluzionario e inefficiente di conversione. Essenzialmente stai creando un oggetto da un primitivo solo per afferrare un altro valore primitivo. Se avessi questo in un ciclo, questo avrebbe probabilmente un impatto notevole. – FreeAsInBeer
la complessità è costante. Questo è tutto ciò che mi interessa. No, non è evidente. –
Come è il tuo codice meno complesso, o anche più leggibile, di '(int) myDouble'? – FreeAsInBeer
- 1. Come convertire double in int in swift
- 2. In Kotlin Come posso convertire un Int? a un numero
- 3. Come convertire Int in Double nel playground Swift?
- 4. Perché int = int * double restituisce un errore e int * = double no (in Java)?
- 5. Come posso convertire una stringa in un int in Python?
- 6. Come posso convertire un int a un NSString?
- 7. Come posso convertire un int a due byte in C#?
- 8. Come convertire un int in una stringa?
- 9. Posso inserire un ObjectiveC @selector in un NSDictionary?
- 10. Come convertire An NSInteger in un int?
- 11. OCaml - Come posso convertire int in stringa?
- 12. Come posso convertire BitArray in single int?
- 13. Come si trasmette un char * a un int o un double in C
- 14. Come convertire int * in int
- 15. Come convertire un Int in un personaggio in Swift
- 16. Come posso convertire un array di byte in double e back?
- 17. Converti int in double Python
- 18. Come convertire BigDecimal in Double in Java?
- 19. Come convertire un array di byte in un array int?
- 20. Come convertire Varchar in Double in sql?
- 21. Come convertire un valore int in stringa in Go?
- 22. Come posso convertire un float/double in ASCII senza usare sprintf o ftoa in C?
- 23. Convertire un float64 in un int in Go
- 24. Come convertire l'array int in int?
- 25. Provare a convertire un int [] in int [,] utilizzando C#
- 26. Come convertire in modo sicuro questo doppio in un int?
- 27. Come convertire int in nsindexpath?
- 28. Come posso convertire un Java HashSet <Integer> in un array primitivo int?
- 29. Algoritmo per convertire un IEEE 754 double in una stringa?
- 30. Come eseguire il cast di un double in un int in Java arrotondandolo?
penso che ora è una buona idea per voi per imparare C: D – tadejsv