Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
77 / 74 / 33
Регистрация: 13.02.2018
Сообщений: 1,347
1

Почему нельзя делить с остатком float/double

09.09.2019, 20:22. Просмотров 1239. Ответов 8
Метки нет (Все метки)

Доброго времени суток, объясните мне, почему нельзя делить с остатком числа с точкой?

К примеру 5.5 / 2 = 1.5, разве нет? Проверим, увеличим числа в 10 раз. 55 / 20 = 15, и уменьшим на 10 = 1.5, все же впоряке?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.09.2019, 20:22
Ответы с готовыми решениями:

Почему точность Double такая же как у Float ?
Вначале столкнулся с проблемой float: time=65536.0f; (можно и больше число указать) time+=0.003;...

Почему нельзя объявить в описание класса статический double?
Ближе к делу :) class SuperClass { public: SuperClass() {} static const int A = 0;...

Почему обычно используют для координат float, а не double?
Почему обычно используют на координатах float а не double? например в играх в той же библиотеке...

Почему при преобразования из float в double коверкается число?
float fll=34.23; cout << " fll="<< fll; //Вот тут я ввожу double dub; dub =...

8
556 / 2029 / 223
Регистрация: 11.08.2016
Сообщений: 1,969
09.09.2019, 20:29 2
Вручную (с явными округлениями и прочей дребеденью) - можно. оператором / без введения своего класса вещественных чисел - нельзя.
0
77 / 74 / 33
Регистрация: 13.02.2018
Сообщений: 1,347
09.09.2019, 20:49  [ТС] 3
Ivandur, я не спрашиваю выход из ситуации, я спросил почему нельзя.
0
1246 / 570 / 240
Регистрация: 11.10.2018
Сообщений: 3,146
09.09.2019, 20:51 4
Цитата Сообщение от k0vpack Посмотреть сообщение
55 / 20 = 15,
- считать ты что-ли не умеешь? 2,75 должно получиться.
0
С чаем беда...
Эксперт CЭксперт С++
7874 / 3800 / 1044
Регистрация: 18.10.2014
Сообщений: 8,079
09.09.2019, 20:52 5
Лучший ответ Сообщение было отмечено Evg как решение

Решение

Цитата Сообщение от k0vpack Посмотреть сообщение
К примеру 5.5 / 2 = 1.5, разве нет?
Это почему это? 5.5 / 2 = 2.75 и никакого остатка нет. Наличие остатка - свойство целочисленного деления. В обычном делении остатка нет в принципе.

Цитата Сообщение от k0vpack Посмотреть сообщение
Проверим, увеличим числа в 10 раз. 55 / 20 = 15
Что???
1
Комп_Оратор)
Эксперт по математике/физике
8420 / 4182 / 569
Регистрация: 04.12.2011
Сообщений: 12,431
Записей в блоге: 14
09.09.2019, 21:37 6
k0vpack, математические преобразования, это вопрос договорённости. То есть сложение или деление, это контракт (набор правил). Чем лучше действо проецируется на реальный мир, тем выше его практическая применимость, непосредственно. Можно легко представить правило по которому 5,5%2 =1,5. Вопрос в том, как часто это может пригодиться и где? С трансцендентными числами будет не весело. Попробуйте написать остаток от деления числа Пи на 3 (крутой угол между прочим). Запись вроде
https://www.cyberforum.ru/cgi-bin/latex.cgi?\pi %3=\pi - 3
не вдохновляет.
0
4576 / 3079 / 1286
Регистрация: 07.05.2019
Сообщений: 9,512
Записей в блоге: 1
09.09.2019, 21:41 7
Цитата Сообщение от k0vpack Посмотреть сообщение
Доброго времени суток, объясните мне, почему нельзя делить с остатком числа с точкой?
Вроде можно - https://en.cppreference.com/w/c/numeric/math/fmod
0
Эксперт C
24570 / 15189 / 3211
Регистрация: 24.12.2010
Сообщений: 32,600
09.09.2019, 21:43 8
Цитата Сообщение от k0vpack Посмотреть сообщение
почему нельзя делить с остатком числа с точкой?
Попробуйте дать определение такого деления. Просто для целых его дать не сложно. И однозначно. А для не целых - тут варианты возможны.
На всякий случай, есть такая функция modf
0
С чаем беда...
Эксперт CЭксперт С++
7874 / 3800 / 1044
Регистрация: 18.10.2014
Сообщений: 8,079
10.09.2019, 00:21 9
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
fmod и remainder.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.09.2019, 00:21

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Почему функцию sqrt нельзя применять к int переменным, а только к double и flot?
Почему функцию sqrt нельзя применять к int переменным, а только к double и float? Извините за...

Почему нельзя делить элементы матрицы в подпрограмме на элементы матрицы? 60-я строка
#include <iostream> #include <cstdlib> #include <cstring> #include <cmath> using namespace std;...

Почему нельзя делить на ноль?
Не знаю, в какой раздел писать, пишу сюда. Приветствую всех. В школьные годы учительница...

Почему нельзя делить на ноль, а умножать можно?
CW8DT3ufo-U Почему нельзя делить на ноль а умножать можно? По возможности, прошу аргументировать...


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

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

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