У меня есть требование отображать все валюты в следующем формате:
"[Code] [Symbol]#,##0.00;[Code] [Symbol](#,##0.00)"
Пользователь выберет страну, а я получу код валюты и символ из внешнего сервиса. Затем я использую string.replace, чтобы установить код валюты и символ в строку формата выше.
Таким образом, значение 123,456 (долларов США) будет отформатировано следующим образом:
"USD $123.46"
Этот подход работает для большинства символов валюты, но у меня проблема с символом валюты для Кувейта د.ك . Я не могу отформатировать какое-либо значение, чтобы символ мог появляться перед цифрами. У меня нет той же проблемы с письмами. Я думаю, что это связано с тем, что арабский язык написан справа налево. Символ даже ведет себя так в браузере. Я не могу выбрать его слева направо, выбор начинается справа.
Кроме того, когда я тестировал в linqpad, моя строка отображалась как [Kuwait_Symbol] #, ## 0,00 , однако при вставке в текстовое поле stackoverflow строка была د.ك #, ## 0,00
Обратите внимание, что порядок символов в строке изменился.
Хотя у меня есть чувство, что мне придется рекомендовать использование символов неосуществимо, есть ли способ обойти эту проблему? Кроме того, почему символ не может быть отображен перед цифрами?