![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 07.04.2010
Сообщений: 11
|
![]()
Добрый вечер всем!
Делаю так: s:=m*b, где m=30, а b=200 000 000 результат получается неверный!!! а если так: for m:=1 to 30 do s:=s+b то все правильно получается!! Может кто знает как это понимать и как с этим бороться? Заранее благодарен за ответ!! |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 23.10.2008
Сообщений: 460
|
![]()
а S как объявлено?
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 07.04.2010
Сообщений: 11
|
![]()
s объявлено как double
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 28.03.2008
Сообщений: 940
|
![]()
Если бы вы rmise учили бы типы Delphi, то знали что тип integer имеет свои граници: -2147483648..2147483647, а вы пытаетесь задать ему 6 млрд. Используйте Int64, там аж -9223372036854775808..92233720368547 75807
|
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 11.01.2009
Сообщений: 1,917
|
![]()
А как проверил что неправильно умножает ?
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 09.11.2009
Сообщений: 669
|
![]()
размерность типа intger: 2147483647, если у вас s такого типа, то в этом и ошибка, причём ваша, а не делфи
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 07.04.2010
Сообщений: 11
|
![]()
WOLF
вообще-то double имеет границы от 2.23 x 10-308 до 1.79 x 10+308 и если бы было переполнение, то цикл for то же бы считал неправильно в экселе посчитал ![]() кстати если записать так: s:=30*200 000 000 то вообще не копмилит а так for m:=1 to 30 do s:=s+200 000 000 нормально Последний раз редактировалось Stilet; 05.05.2010 в 13:36. |
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 11.01.2009
Сообщений: 1,917
|
![]()
Так ! Еще один ищущий ошибки в среде, а не у себя в коде.
1) Вот банальный пример с числами гораздо большими : Код:
... ну и MS Excel 2010 : 00003.jpg И где тут неправильность ?! 2) Погугли на предмет ошибок в MS Office ... Просто для изучения ...
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 07.04.2010
Сообщений: 11
|
![]()
спасибо, щас попробую
Неа все равно не катит! Excel то правильно считает, а у меня результат получается меньше чем 200 000 000!!!!!! получилось только тогда, когда оба множителя типа extended спасибо, но возникла другая проблема, как перевести Extended в int64? во я туплю!!!! надо спать ложиться! спасибо за помошь, истина где-то рядом ![]() Последний раз редактировалось Stilet; 05.05.2010 в 13:40. |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Всем, всем, всем.
Крайне настоятельно рекомендую ознакомится со статьёй. Неочевидные особенности вещественных чисел (с) Григорьев Антон (и знать, как оно там внутри, полезно не только программистам на Delphi ![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Написать программу которая все элементы мссива умножает на 2 | FranZuZ | Помощь студентам | 4 | 18.02.2010 15:54 |
правильно ли?? | Babur4iK | Помощь студентам | 1 | 28.01.2010 13:22 |
Delphi. Как правильно подключить модуль? | SnowFall | Помощь студентам | 6 | 12.05.2009 02:34 |
MySQL + Delphi. Как реализовать правильно? | Vlad_55 | БД в Delphi | 4 | 19.11.2007 17:10 |