Переполнение Clong в VB6 - PullRequest
1 голос
/ 26 мая 2009

У меня ошибка переполнения в VB 6.0 при использовании типа данных Clong из-за действительно больших значений. Как это побороть? Есть ли что-нибудь еще доступнее, чем Clong тип данных?

Ответы [ 5 ]

5 голосов
/ 26 мая 2009

В зависимости от того, насколько велики ваши действительно большие значения, тип данных VB6 Currency может быть хорошим выбором.

Поддерживаются значения в диапазоне от -922,337,203,685,477.5808 до 922,337,203,685,477.5807.

3 голосов
/ 26 мая 2009

Вы можете использовать Double вместо Long, поскольку он может содержать большие числа. Функция - CDbl () вместо CLng ().

В VB6.0 Long является 32-битным и может содержать значения до: 2 147 483 648
Double является 64-битным и может иметь старые значения до: 1.79769313486231570E + 308

РЕДАКТИРОВАТЬ: Пожалуйста, обратитесь к этому ссылка

1 голос
/ 26 мая 2009

Вот некоторые опции из справочного руководства VB6 тема о типах данных

  • Long (длинное целое) 4 байта От -2 147 483 648 до 2 147 483 647
  • Single (одинарная точность с плавающей точкой) 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
1 голос
/ 26 мая 2009

Я полагаю, что предстоящий VB в MSVS2010 имеет типы данных CLonger (64 бита), CEvenLongerYet (128 бит) и CTooDamnLongForSensibleUse (256 бит).

0 голосов
/ 10 декабря 2010

Старайтесь избегать деления на ноль. Если объект числителя и знаменателя вашего кода равен нулю, попробуйте сделать знаменатель равным 1. следовательно, ноль / ноль = переполнение ноль / 1 = ноль (без переполнения)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...