Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Алглрит исследования действительного числа |
Автор: Вася666 28.6.2006, 16:57 |
Если мне надо, допустим, написать программу, которая бы исследовала действительное число, и выводила бы сведения на консоль. Например, в ответ на запрос, я ввожу 19,23455 и выводятся что-то типа "целая часть равна 19 дробная часть равна 0,23455". Каким математическим алгоритмом можно выявить целую и дробную часть любого числа? Единственное, что мне приходит в голову, это вычитать по единицы до тех пор, пока результат этой операции станет отрицательным. Количество произведённых вычитаний, уменьшенное на единицу, будет равно целой части, а последний полученный результат? увеличенный на единицу, будет равен дробной части. Я подумал, может можно ещё как-нибудь... ![]() |
Автор: Earnest 28.6.2006, 17:09 | ||
По-моему, с этим надо не в алгоритмы, а в форум по конкретному языку. Например, в С: целая часть числа - просто приводим к int. Дробная часть числа - вычитаем из исходного числа целое:
Это для положительных, для отрицательных нужно немного подкрутить. |
Автор: maxim1000 28.6.2006, 17:21 |
алгоритм этих действий сильно зависит (можно даже сказать, определяется) от способа представления чисел - в некоторых инструментах один вид, в других - другой, где-то, может, вообще длинные числа поддерживаются на уровне языка например, в C++ и языках, близких ему по уровню, если не ошибаюсь, придерживаются конструкции m*e m - число от 0 до 1 e - 2 в какой-то степени (+m часто нормализуют, чтобы оно было поближе к 1, соответственно уменьшая e - тогда точность повышается) в этом случае для получения целой части нужно: 1. при отрицательном e - сразу вернуть 0 2. при положительном - "сдвинуть запятую" на e разрядов вправо и отрезать всё, что за ней, а то, что осталось - вернуть уже в виде целого числа но так или иначе, если на уровне языка поддерживаются действительные числа, то и операции выделения целой части тоже в общем, вывод такой: 1. если интересует, как выделять целую часть в каком-то языке - лучше указать язык и задать этот вопрос в соответствующем форуме 2. если интересует какой-нибудь абстрактный случай, когда операции выделения целой части нет, то надо описать, а какие операции с дейсвительными числами есть |