У нас есть много программ VB.net (все годы), которые были написаны для клиентов из США.Теперь мы получаем международных клиентов, которые используют точку (точку) в качестве десятичного разделителя вместо запятой (то есть запятая отделяет доллары от центов, а точка отделяет 3 десятичных знака).
Мы можем получить десятичный разделительСимвол из реестра здесь:
HKEY_CURRENT_USER, "Control Panel\International", "sShortDate"
Итак, мы знаем, что это такое.Проблема связана с различными функциями VB.Для данной строки с использованием разделителя запятых:
s = "1.234,56"
Это допустимая числовая строка, где IsNumeric(s)
возвращает true, но Val(s)
возвращает 1
вместо 1234.56
.cDBL(s)
правильно возвращает 1234.56
.
С сотнями Val и IsNumeric во всех наших приложениях у нас есть все виды проблем с конвертацией.Как мы можем правильно проанализировать эти значения?
Выше было использование Visual Studio 2010.