Muszę robić coś naprawdę oczywistego, ale nie mogę tego zobaczyć.Objective-C, jak przekonwertować double do int?
Odpowiedz
podwójna jest typu C nie przedmiotem Cel C. Stąd użyć C rzuca:
double myDouble = 3.2;
int myInt = (int)myDouble;
wierzę NSDouble jest celem C odpowiednik, proszę mnie poprawić, jeśli I” Mylę. –
@Joe D: Jest tylko NSInteger (który jest typedef na int * lub * long w zależności od 32/64bit), ale istnieje NSNumber, który owija C typy danych w obiekt. –
tylko konwersja wspomniano powyżej, jest wystarczająco dobre, choć może chcesz użyć głosu() lub ceil() funkcje wcześniej.
Stwierdziłem, że jest to ważne, szczególnie w kontekście pytania wymagającego dokładności dla płatności. Znalazłem proste liczby, takie jak 230, konwersja do 229 po konwersji całkowitej. –
Uważam, że niewłaściwą praktyką jest używanie zmiennoprzecinkowych do reprezentacji cen. Poprawnym sposobem jest użycie liczb całkowitych (w centach, więc cena 2 $ to 200) i przekonwertuj te wartości do "2.00" tylko na wyjściu. Również Cocoa zapewnia klasę NSDecimalNumber, która jest używana przez iOS do reprezentacji cen. – Vladimir
intValue to metoda dla instancji NSNumber. Dla typu skali, takiego jak int, double i float, nie są one typem klasy. Więc nie mają żadnych metod. Niektóre języki, takie jak C#, mogą zawijać int, lub podwójnie jako obiekt, i mogą być przenoszone do siebie podprocedurą.
double myDouble = 3.2;
int myInt = @(myDouble).intValue;
Przykładowy kod faktycznie używać:
NSNumber * percentLike1 = @(@(self.percentLike.doubleValue*100).integerValue);
-1: To bardzo okrężny i nieefektywny sposób konwersji. Zasadniczo tworzysz obiekt z prymitywu, aby uzyskać inną prymitywną wartość. Jeśli miałbyś to w pętli, prawdopodobnie miałoby to zauważalny wpływ. – FreeAsInBeer
złożoność jest stała. To wszystko, na czym mi zależy. Nie, nie jest to zauważalne. –
W jaki sposób Twój kod jest mniej złożony, a nawet bardziej czytelny niż '(int) myDouble'? – FreeAsInBeer
- 1. Jak przekonwertować Int do Double na placu zabaw Swift?
- 2. Konwersja double do int, zaokrąglona w dół
- 3. Jak przekonwertować Double [], aby podwoić []?
- 4. C++: Jak zaokrąglić double do int?
- 5. Double nie konwertuje na int
- 6. Jak mogę przekonwertować Int do CString?
- 7. Jak przekonwertować QString do int?
- 8. Jak przekonwertować int * na int
- 9. Jak rzucić znak * do int lub double w C
- 10. Wynik odlewania double do int jest źle
- 11. Jak mogę przekonwertować double do najbliższej wartości całkowitej?
- 12. Int to Double Casting Problem
- 13. Jak przekonwertować IntPtr int
- 14. Dlaczego int = int * double daje błąd, a int * = double nie (w Javie)?
- 15. Jak przekonwertować Varchar na Double w sql?
- 16. Jak przekonwertować kolumnę Nvarchar do INT
- 17. Jak przekonwertować Any do Int w Swift?
- 18. Jak przekonwertować int lub bool do checkState
- 19. Jak przekonwertować z powrotem void * do int
- 20. Jak przekonwertować BigDecimal na Double w Javie?
- 21. Jak konwersja z double do int działa w Javie?
- 22. Jak przekonwertować int na nsindexpath?
- 23. Jak przekonwertować int na QString?
- 24. Jak przekonwertować char na int?
- 25. ObjectiveC Parse Integer from String
- 26. C#: double [] [] i double [,]
- 27. Nie można niejawnie przekonwertować typu "int?" do 'int'
- 28. Nie można niejawnie przekonwertować typu "int?" do "int".
- 29. Nie można dodać pary (int, double) do HashMap <Integer, Double>
- 30. Co się stanie, jeśli rzucę double do int, ale wartość double jest poza zakresem?
Myślę, że teraz jest dobry pomysł, aby dowiedzieć się C: D – tadejsv