Форум программистов
 

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2021, 18:52   #1
gromdel
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 68
По умолчанию Python Mod как в Паскале

Добрый вечер. Не смог найти функциб или решение в Питоне, аналог mod.
Используя знак % мне в ответ приходит не то, что я хочу.
Например: 17 % 5 будет равно 2
Но, мне нужен ответ 4
Как в калькуляторе 17/5=3,4
Спасибо.
gromdel вне форума Ответить с цитированием
Старый 08.11.2021, 19:08   #2
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

mod никогда не мог вернуть вам 4, т.к. 17 = 5 * 3 + 2

Цитата:
Сообщение от gromdel Посмотреть сообщение
Но, мне нужен ответ 4
17/5 - int(17/5), (17/5)%1, divmod, ...
ForenLi вне форума Ответить с цитированием
Старый 08.11.2021, 19:11   #3
gromdel
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 68
По умолчанию

ForenLi,
т.е. нет, такой функции, чтобы в ответе был результат после запятой, как в калькуляторе. 17/5=3,4
ЧТобы четверка была в ответе?
gromdel вне форума Ответить с цитированием
Старый 08.11.2021, 19:16   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

А что, в Паскале выдаёт 4 ??
Видимо вам нужна дробная часть числа.
Тут есть несколько вариантов.
Например:
Код:
x = 3.65
print(x % 1)  # :-)
или
Код:
x = 3.65
print(x - int(x))  # :-)
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 08.11.2021, 19:22   #5
gromdel
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 68
По умолчанию

ViktorR, Благодарю добрый человек, я немного до этого дошел, но результаты, все время не те. вместо 4 там 0,3999999999999
Получается, как-то играться надо во первых с округлением, и скорее всего обратно на 10 умножать.
gromdel вне форума Ответить с цитированием
Старый 08.11.2021, 19:22   #6
gromdel
Пользователь
 
Регистрация: 24.04.2012
Сообщений: 68
По умолчанию

Думал, Питон решает такие проблемы одной функцией. Придется костыли делать
gromdel вне форума Ответить с цитированием
Старый 08.11.2021, 23:46   #7
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Цитата:
... но результаты, все время не те. вместо 4 там 0,3999999999999
Прежде чем говорить о костылях, прочитай о формате для хранения вещественных чисел.
Такой результат выдаст любой нормальный язык.

Если необходимо получать дробные части чисел, то тут есть несколько путей:
а) умножаешь и преобразуешь в формат целого;

б) посмотри в сторону модуля fraction. Это то, что работает с рациональными числами.

в) но вероятнее всего тебе подойдёт модуль decimal. Посмотри, например, тут: https://metanit.com/python/tutorial/6.4.php
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как можно заменить одним выражением? С помощью mod вроде как можно goto ∞ Помощь студентам 3 06.08.2019 23:07
M = b(a^x)^(-1) mod p hellsingXXX Общие вопросы Delphi 1 27.12.2011 13:52
a * a mod n NiCola999 Помощь студентам 3 18.12.2010 15:08
Деление a mod b Emperous Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 02.02.2010 21:10
ошибка с mod Kn793 Помощь студентам 2 16.07.2008 13:28