Десятичные дроби в Swift
Я пишу приложение Swift и имею дело с десятичными знаками в базе данных (хранится в mysql как десятичные знаки, с 2 цифрами. В основном это продажи, которые кто-то делал каждый день, поэтому обычно что-то от $0 до $1000, но не миллионы, и ничего безумного с точки зрения конечных десятичных знаков, просто всегда округляется до 2 десятичных знаков).
ссылка на это помогла мне: Как правильно форматировать валюту на ios
..Но я просто хотел сделать быструю проверку здравомыслия здесь и убедитесь, что эта стратегия хорошо. я.е я бы использовал NSDecimal или NSDecimalNumber (есть предпочтительный Свифт аналог??)
Что бы вы все рекомендовали мне делать при работе с валютой в Swift? Я также хотел бы использовать символ валюты на основе локали. У меня есть класс Sales, который содержит указанную сумму. Какой тип данных вы рекомендуете использовать?
извинения, если я отрываюсь ленивый, у меня на самом деле есть некоторые идеи о том, что делать, но чувствую себя немного перегруженным "правильный" подход, особенно с учетом локали, и хотел проверить здесь со всеми вами.
спасибо!
2 ответов
обновление для Swift 3: A Decimal
тип теперь доступен со встроенной поддержкой операторов, таких как *
, /
, +
, <
, etc. При использовании в любом контексте (переданном Objective-C), он соединяется с NSDecimalNumber
.
ответ:
NSDecimal
на самом деле не поддерживается в Swift (это странный непрозрачный тип указателя), но NSDecimalNumber
is - и как в Obj-C, это лучшее, что можно использовать для базы-десять арифметика (потому что она фактически выполняет свои операции в базе десять). NSLocale
, NSNumberFormatter
и друзья все работают слишком и должны удовлетворять ваши потребности локализации.