Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/29: Рейтинг темы: голосов - 29, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 29.05.2019
Сообщений: 9

Методы для действий над денежными суммами

18.06.2019, 06:41. Показов 6331. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.помогите реализовать методы для сложения и вычитания денежных сумм и деления и умножения.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class BaseMoney():
    def __init__(self,wholes,cents):
        if type(wholes) != int:
            raise TypeError('Wholes должен быть целым числом')
        if cents not in range(0,100):
            raise ValueError('Cents должен быть  числом от 0 до 99')
        self.wholes = int(wholes)
        self.cents = int(cents) 
 
    def __str__(self):
        return f'{self.wholes}.{self.cents}' 
 
    def __add__(self, other):
        new_wholes = self.wholes + other.wholes
        new_cents = self.cents + other.cents
        return BaseMoney(wholes, new_cents)
 
 
bm_1 = BaseMoney(4,98)  
print(bm_1) 
bm_2 = BaseMoney(2,30)  
print(bm_2)
bm_3 = bm_2 + bm_1
print(bm_3)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.06.2019, 06:41
Ответы с готовыми решениями:

Создание класса для работы с денежными суммами
Определить абстрактный класс Сurrency для работы с денежными суммами. Определить в нем методы перевода в рубли и вывода на экран. На его...

Калькулятор: выполнение действий над денежными суммами, выраженными в фунтах, шиллингах и пенсах
Создайте калькулятор, который выполняет действия над денежными суммами, выраженными в фунтах, шиллингах и пенсий. Калькулятор должен...

Создайте калькулятор, выполняющий действия над денежными суммами
Создайте калькулятор, выполняющий действия над денежными суммами, выраженными в фунтах, шиллингах и пенсах (см. упражнения 10 и 12 главы...

7
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
18.06.2019, 07:58
В чем проблема?

Python
1
2
3
4
5
6
def __add__(self, other):
        new_wholes = self.wholes + other.wholes
        new_cents = self.cents + other.cents
        new_wholes+=new_cents//100;
        new_cents=new_cents%100;
        return BaseMoney(wholes, new_cents)
2
0 / 0 / 0
Регистрация: 29.05.2019
Сообщений: 9
18.06.2019, 08:19  [ТС]
Спасибо большое
вот эту часть не понимал как сделать
new_wholes+=new_cents//100;
new_cents=new_cents%100;

Добавлено через 3 минуты
Такой вопрос а умножение и деление делается по такому же принципу?

Добавлено через 6 минут
Мне нужно реализовать метод для деления денежных сумм друг на друга, который должен возвращать дробное число.
Вот тут я не понимаю как это сделать
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
18.06.2019, 08:35
С делением и умножением есть проблема. Неизбежно округление. Нужно знать, как округлять. Что должно быть вторым аргументом умножения? По-моему - целое число. А деление сумм имеет смысл только при вычислении процентов. Хотя умножать можно и на дробное (взятие процента).
0
0 / 0 / 0
Регистрация: 29.05.2019
Сообщений: 9
18.06.2019, 08:38  [ТС]
а как тогда быть с этим методом?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
18.06.2019, 08:46
Можно схитрить вот так: из пары делать число с плавающей точкой, выполнять с ним нужные действия, а результат опять превращать в пару (руб.коп)
0
0 / 0 / 0
Регистрация: 29.05.2019
Сообщений: 9
18.06.2019, 08:48  [ТС]
Остались вот такие вот методы которые я вообще понять не могу
метод для деления денежных сумм друг на друга, который должен возвращать дробное число.
методы для умножения и деления денежных сумм на числа, которые возвращают новые денежные суммы.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
20.06.2019, 12:19
https://docs.python.org/3/libr... -functions

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class BaseMoney():
    def __init__(self, wholes, cents):
        self.wholes = int(wholes)
        self.cents = int(cents)
        
    def __str__(self):
        return  '%s.%s' % (self.wholes, self.cents)
        
    def __truediv__(self, v):
        if isinstance(v, BaseMoney):
            return float(self.wholes * 100 + self.cents) / (v.wholes * 100 + v.cents)
        elif isinstance(v, int):
            return BaseMoney(0, 0)
        raise NotImplementedError
        
a = BaseMoney(2, 4)
b = BaseMoney(0, 22)
 
print(a / b)
print(a / 2)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.06.2019, 12:19
Помогаю со студенческими работами здесь

Класс Money для работы с денежными суммами
Класс Money для работы с денежными суммами. Сумма должна быть представлена двумя полями типа *long для рублей и *byte - для копеек. ...

Класс Деньги для работы с денежными суммами
Помогите пожалуйста: Класс Деньги для работы с денежными суммами. Число должно быть представлено двумя полями: типа long для рублей и типа...

Создание класса для работы с денежными суммами
Создать класс Money для работы с денежными суммами. Сумма должна быть представлена массивом, каждый элемент которого - десятичная цифра....

Класс Деньги для работы с денежными суммами
1.Класс Деньги для работы с денежными суммами. Число должно быть представлено двумя полями: типа long для рублей и типа unsigned char - для...

Класс Money для работы с денежными суммами
Помогите решить задачу: Класс деньги для работы с денежными суммами. Число должно быть представлено двумя полями: рублей и для копеек....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru