Я пытаюсь понять, как работает форматирование валюты в .NET Framework.Насколько я понимаю, Thread.CurrentCulture.NumberFormatInfo.CurrencySymbol содержит символ валюты местной культуры.
Но, на мой взгляд, в реальном мире нет четкой связи 1: 1 между конкретной культурой и символом валюты.Например, я могу находиться в Великобритании, но выставляю счета в евро.Или я могу жить в Исландии и получать счета от американских поставщиков в долларах США.Или я могу жить в Швеции, но мой банковский счет использует евро.Я понимаю, что в некоторых случаях вы можете просто предположить, что используется местная валюта, но часто это не так.
В этих случаях я бы клонировал CultureInfo и установил бы валютусимвол вручную на клоне, а затем использовать клон при форматировании суммы?Даже если символ валюты недействителен, я думаю, что все же имеет смысл использовать другие свойства NumberFormatInfo, например CurrencyDecimalSeparator.