Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2019, 07:49   #1
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию проверка на деление без остатка

есть ли стандартная функция, чтобы проверить, делятся ли дробные числа друг на друга без остатка? или только вручную?
Код:
if  n mod m = 0
с дробными неработает
BLACK_RAIN вне форума Ответить с цитированием
Старый 05.08.2019, 08:04   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
с дробными неработает
А должно? В форме плавающих нет, сравнивай остаток от деления с какой-то малой величиной. В форме числитель/знаменатель все сводится к банальному делению по модулю
Код:
if a-Trunc(a/b)*b<0.00001 then делится, ну почти ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 05.08.2019 в 08:10.
Аватар вне форума Ответить с цитированием
Старый 05.08.2019, 08:18   #3
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

а так не проще будет?
Код:
function Remainder(x : Real) : Real;
begin
  Result := x - Trunc(x);
end;
BLACK_RAIN вне форума Ответить с цитированием
Старый 05.08.2019, 08:26   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А деление где?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.08.2019, 08:38   #5
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А деление где?
как где?
Код:
if remainder(10 / 2.5) = 0 then
//делится
else
//не делится
как-то так, не?
BLACK_RAIN вне форума Ответить с цитированием
Старый 05.08.2019, 08:49   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Сообщение от BLACK_RAIN Посмотреть сообщение
не?
0 не обязательно. В данном случае с такими константами скорее всего прокатит. А с другими нет. И если 2.5 не константа, а результат каких-то вычислений, то в памяти она может быть представлена как 2.50000001 или 2.49999999. И где твой 0? 3.999999999-Trunc(3.999999999) чего будет кстати?

PS в моем примере trunc тоже не то, Round вместо него
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 05.08.2019 в 08:54.
Аватар вне форума Ответить с цитированием
Старый 06.08.2019, 02:42   #7
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Цитата:
Сообщение от BLACK_RAIN Посмотреть сообщение
есть ли стандартная функция, чтобы проверить, делятся ли дробные числа друг на друга без остатка?
А смысл?
В чистой математике 4/3 делится на 3/4 "без остатка".
Всё прочее от лукаваго.
northener вне форума Ответить с цитированием
Старый 06.08.2019, 08:42   #8
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
В чистой математике 4/3 делится на 3/4 "без остатка".
и что? теперь из-за этого проверку делать не надо?
Цитата:
Сообщение от northener Посмотреть сообщение
А смысл?
всмысле?
BLACK_RAIN вне форума Ответить с цитированием
Старый 06.08.2019, 09:48   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Сообщение от BLACK_RAIN Посмотреть сообщение
всмысле?
Остаток от деления есть только при делении целых ) При делении вещественных можно говорить только о том, насколько частное далеко от целого числа
Цитата:
Сообщение от northener Посмотреть сообщение
В чистой математике 4/3 делится на 3/4 "без остатка".
не делится )
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.08.2019, 02:23   #10
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
не делится )
Ну ошибся. С кем не бывает.
Дробь 8/6 делится на дробь 4/3 без остатка.
northener вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рассчет остатка eguana JavaScript, Ajax 0 08.08.2014 20:25
деление без остатка DIMA1605 Общие вопросы Delphi 6 15.01.2013 11:42
Деление числа без остатка grom333 Общие вопросы Delphi 6 18.01.2012 22:28
Деление многочленов. Нахождение остатка @Manya@ Общие вопросы C/C++ 2 05.05.2010 11:36
Делить без остатка rangel PHP 4 30.07.2009 14:31