Нельзя использовать модуль в двойниках?

У меня есть программа на C ++ (скомпилирована с использованием g ++). Я пытаюсь применить два удвоения в качестве операндов к функции модуля, но я получаю следующую ошибку:

error: недопустимые операнды типов «double» и «double» to binary «operator%»

Вот код:

int main() { double x = 6.3; double y = 2; double z = x % y; } 

3 Solutions collect form web for “Нельзя использовать модуль в двойниках?”

Оператор % – для целых чисел. Вы ищете fmod() .

 #include  int main() { double x = 6.3; double y = 2.0; double z = std::fmod(x,y); } 

fmod(x, y) – это функция, которую вы используете.

Используйте fmod() из . Если вы не хотите включать заголовочный файл C (обратите внимание: U не может быть float или double ):

 template constexpr T dmod (T x, U mod) { return !mod ? x : static_cast(x) % mod + x - static_cast(x); } //Usage: double z = dmod(14.3, 4); double z = dmod(14, 4); //This also works: double z = dmod(14, 4); double z = dmod(14, 0); double z = dmod(myFirstVariable, someOtherVariable); 
Interesting Posts

Как сгруппировать массив объектов по ключу

Как получить удаленный адрес клиента в сервлет?

Блокируется ли заблокированный объект, если в нем возникает исключение?

Селектор CSS для отмеченной метки переключателя

Доступ к Интернету на Android-телефоне, подключив его к ноутбуку?

Что действительно делает Windows 8 для обновления и перезагрузки моего ПК?

Как сделать Windows 7 менее агрессивным в кэшировании памяти?

AngularJS для цикла с числами и диапазонами

Что означает «| =»? (оператор равных труб)

Как отображать данные из Firestore в RecyclerView с Android?

Быстрый базовый class Swift или NSObject

Как разбирать объект JSON в Android

Что вызывает java.lang.IncompatibleClassChangeError?

В чем проблема с размещением двух высокопроизводительных видеокарт на одном ПК?

Что говорит стандарт о том, как определение четкости вектора меняет емкость?

Давайте будем гением компьютера.