Не пытайтесь делать это с вашим собственным кодом, так как слишком много переменных, чтобы их учитывать. Вместо этого используйте NumberFormatter
, установите для numberStyle
подходящий вам стиль валюты.
Если ваш код не запускается в локали, где валютой является евро, вы можете установить для свойства locale
средства форматирования значение, равное - , а не , чтобы изменить символ валюты, установив currencyCode
или связанных свойств, языковой стандарт содержит больше информации о макете.
Ваши значения в целых центах, хороший выбор для валютных значений, к сожалению, NumberFormatter
ожидает, что единица будет в евро (или фунтах и т. Д.). Вы можете решить эту проблему двумя способами: (а) предварительно разделить число на 100 перед передачей его в форматтер или (б) установить для свойства multiplier
средства форматирования значение 0.01
( Примечание: в этом последнем случае вы должны передайте число, которое будет отформатировано как число с плавающей точкой (например, Double
), иначе центы будут обрезаны, это особенность / ошибка NumberFormatter
)