Некоторое время назад я записал класс для проверения относительной производительности преобразования строк к ints использование двух подходов: (1) назовите Integer.parseInt () и поймайте исключение, или (2) соответствуйте строке regex и назовите parseInt (), только если соответствие успешно выполняется. Я использовал regex самым эффективным способом, которым я мог (т.е. создание объектов Pattern и Matcher прежде, чем хоронить цикл), и я не распечатал или сохранил stacktraces от исключений.
Для списка десяти тысяч строк, если они были всеми верными номерами parseInt () подход был четыре раза с такой скоростью, как подход regex. Но если только 80% строк были допустимы, regex был дважды с такой скоростью, как parseInt (). И если 20% были допустимы, означая, что исключение было выдано и поймало 80% времени, regex был приблизительно двадцать раз с такой скоростью, как parseInt ().
я был удивлен результатом, полагая, что подход regex обрабатывает допустимые строки дважды: однажды для соответствия и снова для parseInt (). Но бросок и ловля исключений, более, чем восполненных это. Этот вид ситуации, вероятно, не будет происходить очень часто в реальном мире, но если это делает, Вы определенно не должны использовать ловящую исключение технику. Но если Вы только проверяете ввод данных пользователем или что-то как этот, любой ценой используйте parseInt () подход.
Тип данных Currency
.
Это 8 байтов и поддерживает значения в диапазоне от -922,337,203,685,477,5808 до 922,337,203,685,477,5807.
Очень похоже на этот вопрос о типах данных VB6. Вот несколько вариантов из раздела руководства VB6 о типах данных
Хотел бы я поместить это в таблицу !