Форум программистов, компьютерный форум, киберфорум
Наши страницы

Visual Basic

Войти
Регистрация
Восстановить пароль
 
Adrenalin
0 / 0 / 0
Регистрация: 08.09.2007
Сообщений: 51
#1

Почему происходит переполнение? - VB

10.01.2009, 16:43. Просмотров 412. Ответов 1
Метки нет (Все метки)

Помогите ...
Visual Basic
1
2
3
Dim Nr1 As Double
Nr1 = 200 * 300
MsgBox Nr1
Error
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2009, 16:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему происходит переполнение? (VB):

Происходит дублирование формы ... Почему? - Visual Basic
Привет всем. В своем MDI приложении я сделал возможность сохранения конфигурации (названий форм и их положений) в файл и чтение...

Почему происходит генерация ошибки при перемещение указателя текущей записи на запись Recordset? - Visual Basic
Почему происходит генерация ошибки при перемещение указателя текущей записи на запись, которая следует после последней записи? При...

Почему происходит ошибка "Нижний индекс вне диапазона"? - Visual Basic
Обьясните пожалуйста, почему выскакивает ошибка 'Нижний индекс вне диапазона'??? Private Type rec name As String * 20 num As...

Переполнение в y = (a ^ x) Mod b - Visual Basic
Помогите пожалуйста решить проблему. Выполняю обычное вычисление: y = (a ^ x) Mod b И при больших значениях x и b возникает...

Переполнение, ошибка 6 - Visual Basic
number = 2 ^ (b(i) - 1) Mod b(i) Данная строка выдает ошибку 6, переполнение. Перменная number типа long, хотя программа ее...

Переполнение при Mod - Visual Basic
Dim c As Double For i = LBound(b) To UBound(b) c = 2 ^ (b(i) - 1) Mod b(i) If c <> 1 Then ...

1
kimsite
1 / 1 / 0
Регистрация: 24.07.2007
Сообщений: 178
10.01.2009, 17:20 #2
По умолчанию (200 * 300) - должно получится число типа Integer.
Можно проверить: (200 * 160 = 32000) - еще работает, а (200 * 170 = 34000) уже нет.
Так как Integer лежит до 32678.
Так что надо все множители переводить сразу в соответствующий формат.
А то VB сначала умножает, а потом переводит в нужный формат.
Вообщем, сделай так:

Visual Basic
1
2
3
Dim Nr1 As Double
Nr1 = CDbl(200) * CDbl(300)
MsgBox Nr1
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2009, 17:20
Привет! Вот еще темы с ответами:

Непонятное переполнение буфера - Visual Basic
Замучила одна ботва, не буду расписывать что к чему, но все сводится к одному: Text1.Text = 1231273 * 512 Text1.Text = 256 * 200 ...

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

Переполнение при перемножении чисел типа Variant - Visual Basic
Вот так работает: Dim TotF As Long TotF = 15000000 А вот так выдаёт "переполнение": Dim TotF As Long TotF = 1500 * 10000 ...

Почему происходит переполнение? - Pascal
Только учусь паскалю так что имейте ввиду если не знаю чего-то элементарного. Вобщем вот код с книжки Program fsaf; Var a :...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.