Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

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

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 02.11.2019, 12:49   #1
FriLDD
 
Регистрация: 02.10.2019
Сообщений: 7
По умолчанию Остаток от деления в Python

Здравствуйте, помогите реализовать логику голограммы, которая находит остаток от деления на 1. Да, знаю это пишется так number % 1,
но при выполнении данной операции появляется погрешность, к примеру:
16,25 % 1 = 0,2500000015 Проблема в том, что мне нужна длинна остатка(2 символа (25)), каким образом можно избавиться от этой погрешности?
FriLDD вне форума   Ответить с цитированием
Старый 02.11.2019, 15:35   #2
Desc
Форумчанин
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 284
По умолчанию

Используйте округление round.
Код:
n = 16.25
k = 3
z = n / k
print (round(z, 2))

Последний раз редактировалось Desc; 02.11.2019 в 15:41.
Desc вне форума   Ответить с цитированием
Старый 02.11.2019, 15:43   #3
ViktorR
Участник клуба
 
Регистрация: 23.10.2010
Сообщений: 1,379
По умолчанию

1. А что у вас за версия?
Код:
>>> 16.25 % 1
0.25
>>> import math
>>> math.fmod(16.25,1)
0.25
>>> (16.25 % 1)*100000
25000.0
>>> (16.25 % 1)*1000000000000
250000000000.0
>>> divmod(16.25,1)
(16.0, 0.25)
У себя я этого не наблюдаю. Да и число 16.25 точно представляется в форме вещественного числа.
Ну вот ещё можно попробовать через округление:
Код:
round(<Число>[, <Количество знаков после точки>])
Как-то так, ...
ViktorR вне форума   Ответить с цитированием
Старый 02.11.2019, 18:22   #4
Desc
Форумчанин
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 284
По умолчанию

Похоже действительно трабл в версии.
Результат в версии 3.7.4:
Код:
>>> n = 16.25
>>> k = 1
>>> z = n % k
>>> print (round(z,2))
0.25
>>> print (z)
0.25
Остаток одинаковый как с округлением, так и без него.
Desc вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Остаток от деления % [Visual C++] spectrum988 Помощь студентам 2 06.04.2015 22:49
остаток от деления madman_34 Общие вопросы C/C++ 1 17.12.2011 00:37
Остаток от деления Memfis_nya Помощь студентам 23 26.09.2010 14:58
остаток от деления % Division Общие вопросы C/C++ 5 25.12.2008 15:08


04:59.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.