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

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

  • автор:

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

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

print((int(a*1000)-(floor(a))*1000)/1000) 

Отслеживать
52.2k 11 11 золотых знаков 108 108 серебряных знаков 311 311 бронзовых знаков
задан 12 дек 2017 в 18:22
49 1 1 золотой знак 1 1 серебряный знак 2 2 бронзовых знака
А что у вас получилось до сих пор?
12 дек 2017 в 18:28
print((int(a*1000)-(floor(a))*1000)/1000) получилось как-то так,но это решение неправильное
12 дек 2017 в 18:40
@helenmay ответ примите нажатием на галочку слева от него
10 мая 2018 в 9:28

6 ответов 6

Сортировка: Сброс на вариант по умолчанию

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

print (a%1) 

Отслеживать
47.5k 17 17 золотых знаков 56 56 серебряных знаков 99 99 бронзовых знаков
ответ дан 13 дек 2017 в 7:39
Владимир Мартьянов Владимир Мартьянов
9,649 4 4 золотых знака 21 21 серебряный знак 35 35 бронзовых знаков
>>> (15 / 8) % 1 0.875 >>> 15 / 8 1.875 Всё простое— реально очень просто!
10 фев 2022 в 18:06

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

>>> import math >>> math.modf(1.5) (0.5, 1.0) 

Отслеживать
ответ дан 13 дек 2017 в 8:13
52.2k 11 11 золотых знаков 108 108 серебряных знаков 311 311 бронзовых знаков

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

Отслеживать
6,343 5 5 золотых знаков 25 25 серебряных знаков 54 54 бронзовых знака
ответ дан 22 мар 2018 в 11:32
11 1 1 бронзовый знак

import math x = float(input()) y = x-math.floor(x) print(y) 

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

Отслеживать
ответ дан 13 июн 2020 в 12:32
11 2 2 бронзовых знака

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

from math import * x = float(input()) if x > 1: a = floor(x) b = x - a print(round(b, 2)) else: print(x) 

Отслеживать
51.6k 199 199 золотых знаков 59 59 серебряных знаков 242 242 бронзовых знака
ответ дан 1 июл 2020 в 20:11
41 3 3 бронзовых знака

def solution(n): decimal = divmod(n, 1) return round(list(decimal)[1], 10) print(solution(4.1)) 

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

Отслеживать
ответ дан 5 дек 2021 в 17:11
23 4 4 бронзовых знака

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

5 дек 2021 в 17:13

пожалуйста, постарайтесь оставлять чуть более развёрнутые ответы. дополнить ответ можно, нажав править

Задача «Дробная часть»

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

Решение задачи от разработчиков на Python:

Copy to Clipboard

Другие интересные реализации задачи:

Copy to Clipboard

Смотреть видео — Задача «Дробная часть» решение на Python

Делитесь с друзьями ссылкой на ответ и задавайте вопросы в комментариях! ��

Related Posts

Задача «Родословная: LCA»

Задача «Родословная: LCA»

Задача «Родословная: предки и потомки»

Задача «Родословная: предки и потомки»

Задача «Родословная: подсчет уровней»

Задача «Родословная: подсчет уровней»

Задача «Продажи»

Задача «Продажи»

3.5 6 голоса
Рейтинг статьи
Подписаться
6 комментариев
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
1 год назад

не работает ((12.55 = 12.54….

1 год назад

x = float(input())
print(round(x — int(x), 3))

1 год назад

Почему работает со значением 0.5, но если другие подставить, то он без округления пишет?

1 год назад

Неправильно работает с другими числами. Если взять например 7,3, то он не округляет

1 год назад

В новых версиях питона вычисление через int не округляет:import mathx = float(input())x = x — (math.floor(x))print(round(x,3))

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

Для целых чисел определены операции + , — , * и ** . Операция деления / для целых чисел возвращает вещественное число (значение типа float ). Также функция возведения в степень возвращает значение типа float , если показатель степени — отрицательное число.

Но есть и специальная операция целочисленного деления, выполняющегося с отбрасыванием дробной части, которая обозначается // (она соответствует операции div в Паскале). Она возвращает целое число: целую часть частного. Другая близкая ей операция − это операция взятия остатка от деления, обозначаемая % (она соответствует операции mod в Паскале). Например:

print(17 / 3) # выведет 5.66666666667 print(17 // 3) # выведет 5 print(17 % 3) # выведет 2

2. Действительные числа

В этом разделе речь пойдет о действительных числах, имеющих тип float .

Обратите внимание, что если вы хотите считать с клавиатуры действительное число, то результат, возращаемый функцией input() необходимо преобразовывать к типу float :

1.492
x = float(input()) print(x)

Действительные (вещественные) числа представляются в виде чисел с десятичной точкой (а не запятой, как принято при записи десятичных дробей в русских текстах). Для записи очень больших или очень маленьких по модулю чисел используется так называемая запись «с плавающей точкой» (также называемая «научная» запись). В этом случае число представляется в виде некоторой десятичной дроби, называемой мантиссой, умноженной на целочисленную степень десяти (порядок). Например, расстояние от Земли до Солнца равно 1.496·10 11 , а масса молекулы воды 2.99·10 -23 .

Числа с плавающей точкой в программах на языке Питон, а также при вводе и выводе записываются так: сначала пишется мантисса, затем пишется буква e , затем пишется порядок. Пробелы внутри этой записи не ставятся. Например, указанные выше константы можно записать в виде 1.496e11 и 2.99e-23 . Перед самим числом также может стоять знак минус.

Напомним, что результатом операции деления / всегда является действительное число ( float ), в то время как результатом операции // является целое число ( int ).

Преобразование действительных чисел к целому производится с округлением в сторону нуля, то есть int(1.7) == 1 , int(-1.7) == -1 .

3. Библиотека math

Для проведения вычислений с действительными числами язык Питон содержит много дополнительных функций, собранных в библиотеку (модуль), которая называется math .

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

import math

Например, пусть мы хотим округлять вещественные числа до ближайшего целого числа вверх. Соответствующая функция ceil от одного аргумента вызывается, например, так: math.ceil(x) (то есть явно указывается, что из модуля math используется функция ceil ). Вместо числа x может быть любое число, переменная или выражение. Функция возращает значение, которое можно вывести на экран, присвоить другой переменной или использовать в выражении:

import math x = math.ceil(4.2) y = math.ceil(4.8) print(x) print(y)

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

from math import ceil x = 7 / 2 y = ceil(x) print(y)
from math import * x = 7 / 2 y = ceil(x) print(y)

Ниже приведен список основных функций модуля math . Более подробное описание этих функций можно найти на сайте с документацией языка Питон.

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

Здравствуйте!
Подскажите, пожалуйста, как получить дробную часть числа?
Например, 97.54, как мне получить 54?
Если можно, то без дополнительных функций.

МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,182

a = 97.54 f = a - int(a)
import math a = 97.54 f, _ = math.modf(a)

Пишите язык программирования — это форум программистов , а не экстрасенсов. (<= это подпись ) Высокая репутация СуперМодератор Регистрация: 27.07.2008 Сообщений: 16,143 Сообщение от BDA
f = a — int(a)
А разве мы не получим 0.54, а ТС хочет получить 54?
Форумчанин
Регистрация: 12.09.2008
Сообщений: 621
Сообщение от Arigato
. ТС хочет получить 54?
Да! Как это сделать?
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,182
Arigato, да, и правда, получим дробное. Женя32, например:

int(str(97.54).split('.')[1])

Но тут могут быть нюансы: сколько нужно знаков после запятой, как предполагается использовать число.
Пишите язык программирования — это форум программистов , а не экстрасенсов. (<= это подпись ) Высокая репутация СуперМодератор Регистрация: 27.07.2008 Сообщений: 16,143

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

Форумчанин
Регистрация: 12.09.2008
Сообщений: 621
Сообщение от BDA
Arigato, да, и правда, получим дробное. Женя32, например:

int(str(97.54).split('.')[1])

Но тут могут быть нюансы: сколько нужно знаков после запятой, как предполагается использовать число.
Все, работает! Спасибо!
Форумчанин
Регистрация: 12.09.2008
Сообщений: 621

Возник вопрос: почему split переворачивает цифры числа?
Например, было 10 выдает 01, было 30 выдает 03, было 50 выдает 05, и т.д.
Как это исправить?

Форумчанин
Регистрация: 02.06.2021
Сообщений: 515
Показывайте код. У меня не переворачивает.
Форумчанин
Регистрация: 12.09.2008
Сообщений: 621

Я не правильно сказал. От десятков убирает 0, было 10 стало 1, было 30 стало 3 и т.д.
price = [22.10, 12.20, 22.30, 33.60]

for i in range(len(price)):
if price[i] % 1 != 0:
st = str(price[i])
inp = st.split(‘.’)[-1]
print(inp)price = [22.10, 12.20, 22.30, 33.60]

for i in range(len(price)):
if price[i] % 1 != 0:
st = str(price[i])
inp = st.split(‘.’)[-1]
print(inp)

Последний раз редактировалось Женя32; 14.07.2021 в 18:28 .

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

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