Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Целая и дробная часть числа / 8 сообщений из 8, страница 1 из 1
14.09.2007, 14:51:58
    #34801103
Semen Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Целая и дробная часть числа
Здравствуйте всем!

Знаю, что вопрос уже во многих форумах не раз поднимался. Но все поиски не дали мне полного ответа по решению проблемы.
Задача простая: Есть число double или float. Нужно получить целую и дробную часть этого числа в виде целых значений.
Вообще, изначально у меня была задача в JSP показать вещественное число в виде денег, например 123.19 -> "123 руб. 19 коп." или "123=19" и т.д. Но, думаю, если научусь извлекать дробную часть числа (это может пригодиться в других задачах), то дальше проблемы не будет.
Конечно, есть способы перевода этого числа в строку, разбора этой строки. Но, может, есть способы более оптимальные и подходящие для работы в JSP. Знаю, что DecimalFormat и NumberFormat делают подобное. Но, можно ли в них задавать произвольные денежные маски?

С уважением, Семен Попов
...
Рейтинг: 0 / 0
14.09.2007, 15:01:24
    #34801153
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Целая и дробная часть числа
Не храни деньги в типах float и double. Хорошей практикой является хранить деньги в копейках (центах). Двочиное представление чисел в типах float и double довольно специфичное. Из-за него не все десятичне дроби можно предаставить в двоичном виде и потом вернуть обратно. Приходится округлять и откидывать погрешности. Дабы не искаль лишщний геморрой себе на одно место, просто храни копейки, и ставь точку после 2х занков при выводе.
...
Рейтинг: 0 / 0
14.09.2007, 15:06:35
    #34801187
jusio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Целая и дробная часть числа
BigDecimal запретили приказом министра обороны?
...
Рейтинг: 0 / 0
14.09.2007, 15:29:21
    #34801335
Semen Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Целая и дробная часть числа
BlazkowiczНе храни деньги в типах float и double. Хорошей практикой является хранить деньги в копейках (центах).
Спасибо. Действительно дельный совет насчет хранения денег. Буду учитывать. Ну, а если все же придется когда-нибудь отделять целую и дробную части?

jusioBigDecimal запретили приказом министра обороны?
Посмотрел все методы BigDecimal, но не нашел подходящего, который бы извлекал дробную часть. Было бы хорохо, если одним методом.
...
Рейтинг: 0 / 0
14.09.2007, 15:36:51
    #34801371
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Целая и дробная часть числа
Semen PopovСпасибо. Действительно дельный совет насчет хранения денег. Буду учитывать. Ну, а если все же придется когда-нибудь отделять целую и дробную части?
При данной постановке задачи, точного решения все равно нет. Что делать с дробями не имеющими конечного представления в десятичной записи? Таких довольно много. Ты вводишь число в конечной записи. При сохрании в двоичную дробь оно округляется до ближайшей конечной двоичной записи с заданной разрядностью. И потом при выводе его в десятичный формат ты легко получаешь десятичную дробь без конечно записи.
Так что тут задача строго ввод-вывод + немного математики.
...
Рейтинг: 0 / 0
14.09.2007, 15:44:30
    #34801410
Semen Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Целая и дробная часть числа
Спасибо
...
Рейтинг: 0 / 0
15.09.2007, 12:42:42
    #34802526
Софтверный проктолог
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Целая и дробная часть числа
BlazkowiczНе храни деньги в типах float и double. Хорошей практикой является хранить деньги в копейках (центах). Двочиное представление чисел в типах float и double довольно специфичное. Из-за него не все десятичне дроби можно предаставить в двоичном виде и потом вернуть обратно. Приходится округлять и откидывать погрешности. Дабы не искаль лишщний геморрой себе на одно место, просто храни копейки, и ставь точку после 2х занков при выводе.
Глупости.
4.54$, с них мы высчитываем пени в количестве 10% в месяц.
Задача рассчитать пени за просроченную неделю равную четверти месяца (просто абстрактный пример):
454 / 100 * 10 / 4 = 11,35 центов

Это — деньги.
В каком формате ты собираешься хранить такую информацию?
...
Рейтинг: 0 / 0
17.09.2007, 08:00:43
    #34803790
GKS_Samara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Целая и дробная часть числа
Софтверный проктолог
Глупости. 4.54$, с них мы высчитываем пени в количестве 10% в месяц.
Задача рассчитать пени за просроченную неделю равную четверти месяца
(просто абстрактный пример):
454 / 100 * 10 / 4 = 11,35 центов


Если ты бухгалтерии выдаш "на гора" эти дробные центы/копейки они тебя
подвесят, причём не за ногу :)
А любое начисление- бухгалтерская операция, с выставление счёта и т.д.
Не может оно быть дробным.

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

--
Алексей
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Целая и дробная часть числа / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]