Я работаю с пакетом OCR для извлечения денежных сумм из документов. Иногда десятичная точка будет некорректно распознана как запятая. Программное обеспечение может выполнять замену символов, готовые к использованию, но я не могу просто заменить все «,» на «.». из-за «тысяч запятой». Программное обеспечение позволяет писать сценарии клиента для проверки и корректировки значений на разных языках. Я использую C#. Я экспериментировал с различными способами сделать это, от замены подстроки, до замены регулярных выражений, до Double.Parse с стилями глобализации и чисел и т. Д. Что бы вы посоветовали для достижения всех следующих преобразований?Коррекция и преобразование номера формата OCR
12.345,67 -> 12345.67
12345.67 -> 12345.67 (no change)
12,345.67 -> 12345.67
1,234.56 -> 1234.56
1.234.56 -> 1234.56
1.234,56 -> 1234.56
123,45 -> 123.45
123.45 -> 123.45 (no change)
1234 -> 1234.00
1,234 -> 1234.00
123 -> 123.00
Редактировать. Добавлено несколько примеров, основанных на заданных вопросах. Примечание: Значения будут в долларах и центах. Нет необходимости обрабатывать «десятые доли». Значение OCR'd будет иметь два или нулевые десятичные разряды.
Как насчет '123,456'? – Toto
Хорошо, потому что это долларовые значения и не будут иметь трех знаков после запятой ... 123,456 -> 123456.00 12,345 -> 12345.00 –