целочисленное деление работает неправильно

Автор ForumOOo (бот), 17 октября 2017, 08:25

0 Пользователи и 1 гость просматривают эту тему.

rami

Цитата: JohnSUN от 17 октября 2017, 14:38
Кстати, Netlog! Спасибо за интересный вопрос (а то что-то скучно было в последнее время) и за найденную ошибку  :beer:
Подобную тему только с расчётами в Basic уже обсуждали: http://forumooo.ru/index.php/topic,5231.msg33019.html#msg33019

JohnSUN

Ну и память у тебя! А я про тот эпизод напрочь забыл... И, кстати, о той теме...
Цитата: rami от 20 октября 2015, 15:21
Твой макрос делает меньше, чем функция:=MOD() которая даёт тот же результат, но для любых чисел.
Теперь готов заменить слово "любых" на "многих"?  ;D
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Netlog

Понятно, что обойтись без здоровенных чисел можно, разваливая числа в две ячейки, или больше, если двух всё равно мало. И если бы с самого начала выдавало ошибку - то я б даже не чихнул. Но ошибка появилась на пятом делении на 2 от 39^10
Попробую поиграться с Питоном...

economist

С Python тоже нужно поаккуратнее, в нем округленные до целых 1,5=2,5!

# особенности Python 3
print(round(1.5, 0)) # = 2 - т.н. "банковское" округление, к ближайшему чётному!
print(round(2.5, 0)) # = 2 - вот и 1.5=2.5=2


Используйте SciPy, NumPy.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

rami

Цитата: JohnSUN от 17 октября 2017, 15:23
Теперь готов заменить слово "любых" на "многих"?  ;D
Неа, я имел ввиду, что числа которые правильно обрабатываются функцией =MOD() мне любы и дороги ;D

читай: "которая даёт тот же результат, но для любых (мне) чисел."

mikekaganski

С уважением,
Михаил Каганский

mikekaganski

Поправил для 6.0 (если не откатят, не найдут чего-нибудь, что ломается).
Исправление в базовом компоненте, возможно, будет работать и для бейсика (не пробовал)
С уважением,
Михаил Каганский