Добавлен Берги
Это просто звездец, я 2 часа потратил на то чтобы при делении 1/4*100 мне вывело 25, но так и не смог. Значит вот в чём проблема
BJDebugMsg(I2S(curcarg)) // вывод верное значение 4 8 12 ну любое какое передаётся
debilbuffer=1/curcarg // глобалка real естественно должно и без неё работать просто проверил
p2=debilbuffer// локалка, более нигде не используемая
BJDebugMsg(R2S(p2)) // всё, тут уже выводит в дебаг 0,000
Я просто не понимаю как такая элементарщина не может работать??? Вар перезапускал, сохраняет без ошибок весь код стирал и заного записывал, переменные переименовывал, задавал локалку p2 как константу, тогда всё ОК, если внутри мат. операция просто ничего не работает!!! Просто 0, Мужики, HELP =(!
Принятый ответ
Нафига ты делишь на integer? Переведи curcarg юзая I2R, или вообще тип переменной на real поменяй
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован Hodor
UrsaBoss, а что это что то меняет? с каких пор нельзя делить на интежер?
Отредактирован Naadir
А ты пробовал вместо локалки p2 юзать сразу мат. операцию? Ну типа BJDebugMsg(R2S(1/cursarg)).
Кстати, ещё. Такие ошибки фортран (ВЕЛИЧАЙШИЙ ИЗ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ) выдаёт, когда делишь 1 на integer или integer на integer. Возможно, корень проблемы один: несоответствие типа?
Bergi_Bear: Трижды ха! На integer делить никогда нельзя было. Компьютер не позволяет тебе этого делать, т.к. нет такой операции.
вместо 1 пиши 1.0, иначе будет целочисленное деление и актуальна строка выше - компилятор туповат и не понимает что ты хочеш дробное деление, а не целочисленное