Размер типов данных VB

Некоторое время назад я записал класс для проверения относительной производительности преобразования строк к ints использование двух подходов: (1) назовите Integer.parseInt () и поймайте исключение, или (2) соответствуйте строке regex и назовите parseInt (), только если соответствие успешно выполняется. Я использовал regex самым эффективным способом, которым я мог (т.е. создание объектов Pattern и Matcher прежде, чем хоронить цикл), и я не распечатал или сохранил stacktraces от исключений.

Для списка десяти тысяч строк, если они были всеми верными номерами parseInt () подход был четыре раза с такой скоростью, как подход regex. Но если только 80% строк были допустимы, regex был дважды с такой скоростью, как parseInt (). И если 20% были допустимы, означая, что исключение было выдано и поймало 80% времени, regex был приблизительно двадцать раз с такой скоростью, как parseInt ().

я был удивлен результатом, полагая, что подход regex обрабатывает допустимые строки дважды: однажды для соответствия и снова для parseInt (). Но бросок и ловля исключений, более, чем восполненных это. Этот вид ситуации, вероятно, не будет происходить очень часто в реальном мире, но если это делает, Вы определенно не должны использовать ловящую исключение технику. Но если Вы только проверяете ввод данных пользователем или что-то как этот, любой ценой используйте parseInt () подход.

6
задан Pradeep 10 August 2009 в 06:06
поделиться

2 ответа

Тип данных Currency .

Это 8 байтов и поддерживает значения в диапазоне от -922,337,203,685,477,5808 до 922,337,203,685,477,5807.

Сводка типов данных VBA

4
ответ дан 8 December 2019 в 17:25
поделиться

Очень похоже на этот вопрос о типах данных VB6. Вот несколько вариантов из раздела руководства VB6 о типах данных

  • Long (длинное целое число) 4 байта От -2 147 483 648 до 2 147 483 647
  • Одинарный (одинарная точность с плавающей точкой) 4 байта -3.402823E38 до -1.401298E-45 для отрицательных значений; 1.401298E-45 до 3.402823E38 для положительных значений. Точность около 6 или 7 значащих цифр.
  • Двойной (с плавающей запятой двойной точности) 8 байты -1.79769313486231E308 до -4.94065645841247E-324 для отрицательных значений; 4.94065645841247E-324 в 1.79769313486232E308 для положительных значений. Точность около 15 или 16 значащих цифр.
  • Валюта (масштабированное целое число) 8 байт от -922,337,203,685,477,5808 до 922,337,203,685,477,5807
  • Десятичный 14 байты +/- 79,228,162,514,264,337,593,543,950,335 без десятичной точки; +/- 7.9228162514264337593543950335 с 28 цифрами справа от десятичный; наименьшее ненулевое число +/- 0.0000000000000000000000000001

Хотел бы я поместить это в таблицу !

10
ответ дан 8 December 2019 в 17:25
поделиться