2013-07-05 1 views
0

В .net VB есть многоязычный и многовалютный ценовой листинг, который поступает из двух источников. Для цен, поступающих с нашего SQL-сервера, где цены хранятся как тип данных Money, все хорошо, если мы меняем языки. то есть 599,00 долларов США на английском языке отображается как 599,00 долларов США на итальянском языке.. Формат выпуска в формате NET

Валюта и цена - отдельные поля, кстати.

Однако, когда источник данных находится на веб-сервисе наших партнеров, когда данные являются строкой, тогда 599 долларов США по-прежнему верны на английском, но на итальянском, испанском или немецком языке они составляют 599,00,00 долларов США. Я не могу понять, что с ним происходит. Не все цены являются полными единицами, поэтому я не могу просто разобрать целое число.

Любые советы будут оценены.

+0

Подведем итоги: у вас возникли проблемы синтаксический анализ строки '' US $ 599,00 "' до десятичной? – CodeCaster

+0

Нет. Строка из веб-службы - «599,00». Если I Convert.ToDecimal (theString), я все равно получаю 599,00,00 при отображении на выходе datagrid. – Craig

ответ

1

Строка из веб-сервиса "599,00". Если I Convert.ToDecimal (theString), я все равно получаю 599,00,00 при отображении на выходе datagrid.

Если строка из веб-службы всегда использует точку в качестве десятичного разделителя, конвертирование с использованием InvariantCulture, который имеет . в DecimalSeparator:

decimal amount = Convert.ToDecimal("559.00", CultureInfo.InvariantCulture); 
+0

Спасибо, это отсортировало это красиво. – Craig