Как получить дробное число при делении c

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

Получить случайное дробное число
в C# нет функции, которая получает случайное дробное число. Я попробовал написать самостоятельно.

Как получить дробное число при вычислении
Я в принципе знаю ответ, но помощь не помешает. Мне например нужно записать c=1/7. Почему надо в.

Как получить вещественное число при делении целых?
как получить дробное число? 14/5=2 14%5=4 а как сделать чтобы ответ был 2.8. Добавлено.

Программа при делении выдает целое значение а не дробное
Задание: Прибор состоит из трех узлов. При включении прибора с вероятностью P1 появляется.

Лучший ответСообщение было отмечено Yamakasi009 как решение

Решение

Romalei, я уже решил проблему и еще узнал что не обязательно что бы оба числа были с плавающей запятой, одного хватает и мне это как раз подошло

Добавлено через 3 минуты
Neptyn, если числа плохо делится например как 4 / 9 то твой вариант не работает

Сообщение от Yamakasi009
Сообщение от Yamakasi009
Сообщение от Neptyn

Как получить случайное дробное число в заданном диапазоне
Как получить случайное число с плавающей запятой. Так не получается: Dim cRandom As Random Dim.

Получить нецелое число (2.44 и тд), при делении двух чисел типа Integer
При делении двух чисел (200 и 150) я получаю результат 1, если делю наоборот то 0. 200 и 150 это.

Как получить десячичную дробь при делении?
Как в баше получить результат $(( $a / $b )) в виде десятичной дроби.

Определить произведение элементов, которые при делении на 2 дают такой же остаток как и при делении на 3
Ввести двумерный массив А3×4 . Определить произведение элемен-тов, которые при делении на 2 дают.

Как получить дробное число при делении c

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

Поиск по форуму
Расширенный поиск
К странице.

I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Деление нацело делается обычным оператором "/", но тип обоих операндов должен быть целочисленный (char/short/int/long). Если ты делишь целые числа, но хочешь иметь дробный результат, один операнд нужно привести к float или double, например:

Как получить дроби в целочисленном делении?

Как в C разделить два целых числа и получить ответ типа double или float?

задан 04 июн ’10, 13:06

«десятичное» — это представление (как «шестнадцатеричное», «восьмеричное», «двоичное»), которое применяется к целым или нецелым числам. Вы имеете в виду, я думаю, «получить нецелочисленный результат». — leonbloy

Вот как вы получаете дроби (рациональные числа) с целочисленным делением printf(«%d %d/%d» x/y, x%y, y); . Вы уверены, что вам не нужен нецелочисленный результат? — Brendan

2 ответы

Вам нужно перевести тот или иной float or double .

Конечно, убедитесь, что вы храните результат подразделения в double or float ! Это не принесет вам никакой пользы, если вы сохраните результат в другом int .

Что касается комментария @Chad (» [tailsPerField setIntValue:tailsPer] «):

Не пропускайте двойное или плавающее setIntValue когда у тебя есть setDoubleValue , и т.п. в наличии. Вероятно, это та же проблема, о которой я упоминал в комментарии, когда вы не используете явное приведение типов и получаете недопустимое значение, потому что двойное значение читается как целое число.

Например, в моей системе файл:

потому что double пытались прочитать как int.

Правильно. Преобразуйте целые числа, прежде чем выполнять деление. — ДОК

двойной тп; двойной х; х = тп; //(tn является целым числом) обычно 10 tp = x/fn; // fn также является целым числом (обычно 5), но я все равно получаю 0 — Чад Кариш

@Chad: код выглядит правильно. Как вы определили, что результат равен нулю? Вы делаете что-то вроде printf(«%d», tp) ? Это пытается напечатать содержимое double как int, и вы не получите правильных результатов. Ваш компилятор должен был предупредить вас, если вы это сделали. Для двойной строки формата %lf . — Марк Рушаков

на самом деле он отправляется в gui. tailsPer = tailsNum / ((double)curNum); //tailsper является двойным [tailsPerField setIntValue:tailsPer]; // это в какао — Чад Кариш

Реализация класса «Дробь» на C#

realizaciya klassa drob na c

статьи

В своих программах часто приходится работать с вещественными числами. Для их хранения в c# предусмотрены такие вещественные типы, как float, double и decimal. Однако не для кого не секрет, что все вещественные числа в компьютере имеют ограниченную точность. Например, если объявить целую переменную, присвоить ей значение равное двум, а затем извлечь квадратный корень и результат возвести в квадрат, то мы получим число, несколько отличающееся от двух. Чтобы не быть голословным, напишем небольшую программу.

Результат в консоли:

Результат в отладчике:

Реализация класса "Дробь" на C# (С#)

Результаты показывают, хоть в консоль и вывелось точное значение (из-за особенностей работы метода Console.WriteLine), в действительности оно не такое уж и точное.

Таким образом, мы имеем некоторую погрешность, которая зачастую только мешает, поэтому я предлагаю написать новый тип (а точнее класс) «Дробь», в котором будут реализованы все (ну или почти) действия с дробями. Итак начнем!

Класс Fraction

В классе будет три поля:

  • числитель
  • знаменатель
  • знак

После того, как поля описаны, переходим к конструктору.

Конструкторы

Я предлагаю дать возможность создавать дроби двумя способами:

  1. явно указав числитель и знаменатель
  2. указав лишь один числитель, подразумевая, что в знаменателе будет единица

Как Вы успели заметить, ни в одном конструкторе не указывается знак. Сделал я это преднамеренно, с той целью, чтобы во время создания дроби не возникало вопросов насчет знаков числителя и знаменателя. Иными словами, знак будет определяться знаком произведения числителя на знаменатель.

Арифметические операции над дробями

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

Поиск наименьшего общего знаменателя

Для выполнения операций сложения и вычитания дробей нам понадобится приводить их к общему знаменателю, причем к наименьшему. Наименьшим общим знаменателем двух дробей является наименьшее общее кратное (НОК) их знаменателей. В свою очередь поиск НОК сводится к поиску наибольшего общего делителя (НОД).

Обобщив все вышесказанное, получаем, что нам нужно реализовать два метода:

  • возвращающий НОК двух чисел
  • возвращающий НОД двух чисел
Метод нахождения наибольшего общего делителя
Метод нахождения наименьшего общего кратного

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

Перегрузка арифметических операторов

Как Вы наверняка успели заметить, в только что написанном коде используются два неописанных ранее методов:

  • GetReverse — возвращает дробь, обратную данной
  • GetWithChangedSign — возвращает дробь с противоположным знаком

Операции сравнения

Для перегрузки операторов сравнения необходимо переопределить методы Equals и GetHashCode. Первый будет возвращать значение истины, если заданный объект равен текущему. Второй же метод возвращает хэш-код для текущего объекта.

Перегрузка операторов «==» и «!=»

Хорошо. Сравнивать на равенство дроби уже умеем. Теперь сделаем так, чтобы можно было выяснить, какая из двух дробей больше. Как и ранее, пишем вспомогательный метод.

Перегрузка операторов «>», «<«, «>=», «<=»

Вот и все. Класс готов. Ниже представлен скрин работы программы, в которой тестируются все публичные методы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *