Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/40: Рейтинг темы: голосов - 40, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 01.05.2014
Сообщений: 4

Создать класс Money для работы с денежными суммами

12.11.2015, 01:11. Показов 8007. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
помогите пожалуйста с заданием:
Создать класс Money для работы с денежными суммами. Число должно быть представлено двумя полями: типа long для рублей и типа byte – для копеек. Дробная часть (копейки) при выводе на экран должна быть отделена от целой части запятой. Реализовать сложение, вычитание, деление сумм, деление суммы на дробное число, умножение на дробное число и операции сравнения.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.11.2015, 01:11
Ответы с готовыми решениями:

Создать класс Money для работы с денежными суммами
Нужно создать класс Money для работы с денежными суммами. Число должно быть представлено двумя полями: типа long для рублей и типа unsigned...

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

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

9
5 / 5 / 1
Регистрация: 04.07.2014
Сообщений: 73
12.11.2015, 21:12
Примерно так
(неустойчив к переполнениям)

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
class Money{
private long rubs;
private byte cents;
 
public Money( long rubs, byte cents ){
    this.rubs = rubs;
    this.cents = cents;
}
 
public static double division( Money operand1, Money operand2 ){
    long operand1Total = operand1.getRubs( ) * 100 + operand1.getCents( );
    long operand2Total = operand2.getRubs( ) * 100 + operand2.getCents( );
    return operand1Total / (double) operand2Total;
}
 
public static Money add( Money operand1, Money operand2 ){
    long rubs = operand1.getRubs( ) + operand2.getRubs( );
    int cents = operand1.getCents( ) + operand2.getCents( );
    if( cents > 99 ){
        rubs++;
        cents -= 100;
    }
    if( cents < 0 ){
        rubs--;
        cents += 100;
    }
    return new Money( rubs, (byte) cents );
}
 
public static Money subtruct( Money operand1, Money operand2 ){
    return add( operand1, new Money( -operand2.getRubs( ), (byte) -operand2.getCents( ) ) );
}
 
public static Money division( Money operand, double by ){
    long operandTotal = (long) ( ( operand.getRubs( ) * 100 + operand.getCents( ) ) / by );
    return new Money( operandTotal / 100, (byte) ( operandTotal % 100 ) );
}
 
public static Money mult( Money operand, double times ){
    return division( operand, 1 / times );
}
 
public long getRubs( ){
    return rubs;
}
 
public byte getCents( ){
    return cents;
}
 
public String toString( ){
    return rubs + "," + cents;
}
 
public boolean equals( Money test ){
    return test.getRubs( ) == rubs && test.getCents( ) == cents;
}
}
1
9 / 9 / 5
Регистрация: 19.01.2016
Сообщений: 33
23.08.2016, 17:05
Потребовали перегнать бизнес базу из аксеса в яву ... заглянул сюда.
В целом спасибо !
Но...
Цитата Сообщение от ymniktm Посмотреть сообщение
public String toString( ){
return rubs + "," + cents;
}
При мене чем 10 центах теряет 0 после запятой (например rubs = 55, cents=4 выдаст 55,4 вместо 55,04)
--------

При операциях с double округляет копейки вниз... У меня это требовали только модулях начисления зарплаты, и только в части начислено, остальное буржуины хотят округлить вверх ...
Но это так, к слову... если заказчик оговорит ...
0
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
24.08.2016, 17:24
а зачем велосипедить, когда гугл сразу выдает например joda-money и javamoney?

кстати в java9 Money API из коробки будет

P.S. если писать самому операции с валютой, то я советую их отлаживать на очень большом количестве возможных ситуаций
0
25.08.2016, 15:44

Не по теме:

Цитата Сообщение от LeX BB Посмотреть сообщение
кстати в java9 Money API из коробки будет
Не, не будет. Выкинули.
Актуальный список JEP-ов можно посмотреть тут - http://openjdk.java.net/projects/jdk9/

0
25.08.2016, 16:46

Не по теме:

turbanoff, ну и пусть) не расстраивает)

0
0 / 0 / 0
Регистрация: 14.05.2018
Сообщений: 214
09.10.2019, 13:17
ymniktm, могли бы пожалуйста дописать программу?
0
 Аватар для Aviz__
2740 / 2049 / 507
Регистрация: 17.02.2014
Сообщений: 9,470
09.10.2019, 13:33
Цитата Сообщение от Yuriy_Tevt Посмотреть сообщение
При мене чем 10 центах теряет 0 после запятой (например rubs = 55, cents=4 выдаст 55,4 вместо 55,04)
так храни все в копейках и BigInteger, как советуют все классики!
0
09.10.2019, 13:36

Не по теме:

Aviz__, посмотри на дату

0
09.10.2019, 13:44

Не по теме:

Цитата Сообщение от Gungala Посмотреть сообщение
посмотри
мдя, Taras99, ввел в заблуждение, вместо того, чтобы решать свою задачу, решил клянчить у трех летней темы((

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.10.2019, 13:44
Помогаю со студенческими работами здесь

создать класс Money для работы с денежными суммами
1. Определение класса. Оценивается полнота и корректность определения класса (объявление его полей и методов). Поля класса должны быть...

Создать класс money для работы с денежными суммами
Создать класс money для работы с денежными суммами. Денежная сумма должна быть представлена двумя полями целого типа: одно-для...

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

Создать класс Money для работы с денежными суммами
Номиналы российских рублей могут принимать значения 1, 2, 5, 10, 50, 100, 500, 1000, 5000. Копейки представить как 0.01 (1 копейка), 0.05...

Создать класс Money для работы с денежными суммами
 Создать проект CLR – консольное приложение. Создать класс Money для работы с денежными суммами. Число должно быть представлено двумя...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru