#vb.net
#vb.net
Вопрос:
Мне нужно преобразовать текст в формате валюты в десятичный формат.
Пример: 12 500,50 долларов США -> 12500,50
Этот текст находится в текстовом поле. Я использовал функцию formatCurrency(), но мне нужно получить исходный текст (десятичный формат).
Как я могу это сделать?
Комментарии:
1. Вы хотите сказать, что вам нужна помощь в разборе десятичного числа из строки, которая всегда начинается с «US $»?
2. Это именно то, что я говорю. Вы можете мне помочь?
Ответ №1:
Я не знаю наверняка об этом, но вы можете попробовать:
Dim NewString As String = Replace(Replace(TextBox1.Text, "US$", ""), ",", "")
Dim Currency As Decimal = CDec(NewString)
'Just to check if it works.
MessageBox.Show(Currency)
Ответ №2:
Для начала не используйте FormatCurrency
. Вызовите ToString
и передайте «c» в качестве спецификатора формата. Обратной операцией было бы вызвать Decimal.Parse
или Decimal.TryParse
и указать форматирование валюты.
Комментарии:
1. Нет необходимости говорить «спасибо», и это на самом деле не рекомендуется. Комментарии следует оставлять только для того, что добавляет к цели ответа на вопрос. Однако вам следует принять ответ, если он действительно отвечает на ваш вопрос, чтобы другие могли видеть, что он полезен.
Ответ №3:
Используйте числовые стили
Dim test As String = "US$12,500.50"
Dim testAsNum As Decimal
Dim ci As New Globalization.CultureInfo(Globalization.CultureInfo.CurrentCulture.LCID)
ci.NumberFormat.CurrencySymbol = "US$"
Dim ns As Globalization.NumberStyles = Globalization.NumberStyles.AllowCurrencySymbol Or _
Globalization.NumberStyles.AllowDecimalPoint Or _
Globalization.NumberStyles.AllowThousands
If Decimal.TryParse(test, ns, ci, testAsNum) Then
Stop
Else
Stop
End If