Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> остаток от деления вещественных чисел 
:(
    Опции темы
PRF
Дата 29.9.2008, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 13.10.2007

Репутация: нет
Всего: нет



Привет. Ребята как получить остаток от деления. 

double A = 1.23202;

A % 1 =  выдает ошибку, но это понятно, так вот, как получить остаток от деления вещественного числа???
Заранее спасибо.
PM MAIL   Вверх
volvo877
Дата 29.9.2008, 22:38 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 1
Всего: 116



Попробуй функцию fmod из math...
PM MAIL   Вверх
sergejzr
Дата 30.9.2008, 00:13 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Остатка от деления вещественного числа в природе быть не может.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
NebelDT
  Дата 30.9.2008, 08:48 (ссылка)    | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 29.9.2008
Где: RU

Репутация: -1
Всего: -10



Как тебе такой примечик??? smile 
Код

#include <stdio.h>
#include <math.h >
main()
{
double i=0,j=0,N=0,M=0,K=0,X=0,Z=0,G=0;
scanf("%f%f",&N,&K);
j=K;i=2;G=i;
while(i<=N){
X=(G%K); :shok 
if(X==0){Z++;}
i++;G++;
}
printf("%f",Z);
return (0);
}

PM MAIL WWW YIM   Вверх
mrbrooks
Дата 30.9.2008, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 2
Всего: 306



NebelDT, это че за дичь?
PM MAIL   Вверх
Alexeis
Дата 30.9.2008, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 12
Всего: 459



NebelDT, а теперь подумай smile . 
PRF, возможно тебе следует привести числа с плавающей точкой к целым и потом получить остаток деления целых чисел.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
vinter
Дата 30.9.2008, 12:32 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



кастанув спелл  телепатии, я решил, что тебе нужно следущее 
Код

double A = 1.23202;
double B = A - static_cast<long>(A); 



--------------------
Мой блог
PM MAIL WWW   Вверх
inside_pointer
Дата 30.9.2008, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 9.3.2008

Репутация: 5
Всего: 12



Код

#include <stdio.h>
#include <math.h>

main()
{
    printf("%g\n", fmod(1.555, 1.0));
    return 0;
}


подключение математической библиотеки
[guest@localhost tmp]$ cc -lm test.c -o test
PM MAIL   Вверх
volvo877
Дата 30.9.2008, 13:17 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 1
Всего: 116



inside_pointer, во втором посте что было, не заметил? Однако, здесь появилось мнение, что разработчики С/С++ и библиотек - полные идиоты, и занимаются не тем, чем нужно, ибо остатка быть не может... Значит, твой пост - фикция... Не может быть такой функции в природе, ибо считать ей НЕЧЕГО...
PM MAIL   Вверх
vinter
Дата 30.9.2008, 14:13 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата(volvo877 @  30.9.2008,  14:17 Найти цитируемый пост)
Не может быть такой функции в природе, ибо считать ей НЕЧЕГО...

конечно нечего, любое вещественое число, делиться на любое другое без остатка. Значит у вещественных чисел нет остатка ;)


--------------------
Мой блог
PM MAIL WWW   Вверх
system
Дата 30.9.2008, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 16.5.2008

Репутация: нет
Всего: 2



Код

#include <iostream>
#include <math.h>

double rest( double x, double y ) {
double i, f;
        if (y == 0.0) {
                return 0.0;
        }
        i = floor(x/y);
        f = x - i*y;
        if ((x < 0.0) != (y < 0.0))
                f = f-y;
        return f;
}

int main() {
        std::cout << rest( -10.1, 3.1 ) << std::endl; 
        return 0;
}
//out : -0.8


Это сообщение отредактировал(а) system - 30.9.2008, 16:56
PM MAIL   Вверх
korian
Дата 30.9.2008, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



шото поискав по инету нашел тока такое определение:
Цитата

По определению найти частное и остаток от деления целого числа а на целое число b, отличное от нуля, означает нахождение целых q и r (называемых соответственно частным и остатком), удовлетворяющих двум условиям:
1) a=b*q + r
2) 0 <= r < |b|

видно т.к. операция mod над действительными числами не имеет большой популярности, другое определение фиг найдешь  smile 
а вообще в данном выражение, целым обязано быть только число q.

PM   Вверх
Alexeis
Дата 30.9.2008, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 12
Всего: 459



В данном случае речь о случае когда целое число представлено числом с плавающей точкой, либо можно отбросить цифры после запятой. Функция fmod существует для оптимизации таких вычислений, т.е. для того чтобы не производить лишних операций. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
korian
Дата 1.10.2008, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



Alexeis, вы имеете ввиду, что функция fmod делает что-то типа:
floor(x) % floor(y) ?
если б это было так, то fmod(5., 2.5) должен быть равен 1
а так оно равно нулю, что вообщем-то и правильно, т.к. результат деления 5 на 2.5 целое число.
PM   Вверх
J0ker
Дата 1.10.2008, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 4
Всего: 14



 smile 
Код

The fmod function calculates the floating-point remainder f of x / y such that x = i * y + f, where i is an integer, f has the same sign as x, and the absolute value of f is less than the absolute value of y.



--------------------
user posted image
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1243 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.