Как получить дробную часть числа
Перейти к содержимому

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

  • автор:

Вывести дробную часть положительного числа на Питоне

Дано положительное действительное число X. Выведите его дробную часть.

Вот моё решение, но оно неправильное:

Остаток от деления на единицу, как это ни странно, даст нужный результат:

insolor's user avatar

Чтобы разделить число на дробную и целые части, можно math.modf() использовать:

print(x — int(x)) — это более точный вариант, но print(a%1) также сработает

Twiss's user avatar

Феликс's user avatar

И округлить по вкусу)))

Из курса ВШЭ решал задание такое вот так:

0xdb's user avatar

Ответом будет 0.1| divmod(n,1) разделит число n на кортеж (4.0, 0.0999999998). Дальше я просто беру число под индексом [1] , это число 0.0999999998, и затем округляю его до десятых. В итоге получается 0.1

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.3.13.43310

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

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

Получить дробную часть числа можно с помощью штатных функций fmod или explode, следующим образом:

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

Что быстрее? Тестируя каждую функцию, на скорость выполнения, в цикле из 1 000 000 итераций, получим следующий результат:

По результатам теста видно, что функция fmod работает быстрее приблизительно в 10 раз.

Функции для работы с числами в 1С

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

Округление чисел

Для округления чисел в 1С предназначена функция Окр. Первым параметром передается само число, вторым — количество знаков после запятой, до которых нужно округлить. Если вторым параметром передать отрицательное число, то будет выполнено округление до соответствующего разряда в целой части, начиная с младших разрядов (-1 до десятков, -2 до сотен и т.д.). Третьим параметром указывается режим округления: если 0, то число 1.5 округляется до 1, если 1, то 1.5 округляется до 2.

Округление всегда в большую сторону

Число = 11.2345;
ОкругленноеЧисло = Окр(Число + 0.5, 0, 0); //12

Число = 11.01;
ОкругленноеЧисло = Окр(Число + 0.5, 0, 0); //12

Число = 11.99;
ОкругленноеЧисло = Окр(Число + 0.5, 0, 0); //12

Для получения натурального логарифма используется функция Log, для десятичного — Log10:

Тригонометрические функции

В 1С можно рассчитывать синус, косинус, тангенс, арксинус, арккосинус, арктангенс:

Число = 0;
Арксинус = ASin(Число); //0
Арккосинус = ACos(Число); //

Возведение в степень

Возвести в степень можно двумя функция: Exp — возводит основание натурального логарифма (

2.72) в переданную ей параметром степень; Pow — можно передать как основание, так и показатель степени:

Число = 2;
Степень = 3;
ЧислоВКубе = Pow(Число, Степень); //8


Квадратный корень

Для получения квадратного корня можно воспользоваться функцией Sqrt:

Перевод в десятичную систему счисления

С помощью функций ЧислоИзШестнадцатеричнойСтроки и ЧислоИзДвоичнойСтроки можно получить десятичное число из шестнадцатиричного и двоичного числа. Обе функции параметром принимают строки. Для функции ЧислоИзШестнадцатеричнойСтроки строка должна начинаться с «0x», для функции ЧислоИзДвоичнойСтроки с «0b»:

Получение максимума и минимума

Для получения максимального и минимального числа можно использовать функции Макс и Мин. Параметром можно передать неограниченное количество чисел, через запятую:

Получить дробную часть числа с помощью JavaScript

но у меня возникли проблемы с получением дробную часть. Я пробовал это:

но это не всегда работает правильно.

предыдущий код имеет следующий вывод:

чего мне здесь не хватает?

16 ответов

использовать 1 , а не 2 .

хотя это не минус, так что мы могли бы сделать

вы можете преобразовать в строку, верно?

Как 0.299999999999999998 приемлемый ответ? Если бы я спрашивал, я бы хотел получить ответ .3. Здесь мы имеем ложную точность, и мои эксперименты с floor, % и т. д. показывают, что Javascript любит ложную точность для этих операций. Поэтому я думаю, что ответы, которые используют преобразование в строку, находятся на правильном пути.

Я бы сделал так:

в частности, я использовал 100233.1, и я хотел получить ответ «.1».

самый простой способ сделать это:

к сожалению, это не вернет точное значение. Однако, это легко исправить:

вы можете использовать это, если вы не знаете число десятичных знаков:

вот как я это делаю, и я думаю, что это самый простой способ сделать это:

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

это не красиво, но это точно.

вы можете преобразовать его в строку и использовать replace метод для замены целочисленной части нулем, а затем преобразовать результат обратно в число:

в зависимости от использования вы дадите потом, но это простое решение также может помочь вам.

Я не говорю, что это хорошее решение, но для некоторых конкретных случаев работает

но это займет больше времени, чем предлагаемое решение @Brian M. Hunt

независимый от языка способ:

обратите внимание, что он корректен только для чисел с одной фрактиоанальной длиной )

если точность имеет значение, и Вам требуются согласованные результаты, вот несколько предложений, которые вернут десятичную часть любого числа в виде строки, включая ведущий «0.». Если вам это нужно, как поплавок, просто добавить var f = parseFloat( result ) в конце.

если десятичная часть равна нулю, будет возвращено «0.0». Null, NaN и неопределенные числа не тестируются.

1. Матрица.сплит

2. Строка.подстрока, строка.метод indexOf

3. Математика.этаж, номер.toFixed, String.метод indexOf

4. Математика.этаж, номер.toFixed, String.сплит

мы видим, что предложение №2 является самым быстрым.

можно использовать parseInt() функция для получения целочисленной части, чем использовать это для извлечения десятичной части

У меня был случай, когда я знал, что все рассматриваемые числа будут иметь только один десятичный знак и хотел получить десятичную часть как целое число, поэтому я использовал такой подход:

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

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