Я хотел бы создать функцию, которая смотрит на строку, и если она является десятичной строкой, возвращает ее как строку, форматированную в валюте. Ниже функция делает это, однако, если я передать строку, которая уже отформатировано, он будет не в состоянии, конечно (он ожидает увидеть строку как «25» или '25 .55' но не „$ 15,25“Проверьте, является ли строка уже валютной строкой?
Есть ли способ изменить мою функцию ниже, чтобы добавить другое условие, в котором говорится: «Если вы уже отформатированы как строка валюты или ваша строка не в правильном формате, верните X» (возможно, X будет 0, или, может быть, это будет сам (тот же строка) я пока не уверен).
func toCurrencyStringFromDecimalString() -> String
{
var numberFormatter = NSNumberFormatter()
numberFormatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle
if (self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()).utf16Count == 0)
{
//If whitespace is passed in, just return 0.0 as default
return numberFormatter.stringFromNumber(NSDecimalNumber(string: "0.0"))!
}
else if (IS_NOT_A_DECIMAL_OR_ALREADY_A_CURRENCY_STRING)
{
//So obviously this would go here to see if it's not a decimal (or already contains a current placeholder etc)
}
else
{
return numberFormatter.stringFromNumber(NSDecimalNumber(string: self))!
}
}
Спасибо за вашу помощь!
Это был такой полезный, хорошо сложенный ответ Lyndsey. спасибо за вашу помощь в том, чтобы помочь мне в этом. :) – NullHypothesis
@ user3379785 Нет проблем :) –
Отредактировано для синтаксиса –