![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
NeuZeitgeist |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 24.11.2007 Репутация: нет Всего: нет |
Помогите найти ошибку в программе.
Задача: ввести строку в формате $345,456.67, перевести ее в double в виде 345456.67 (два знака после запятой), затем перевести это число снова в строку формата $345,456.67 Сделал класс, где есть два метода. Один double mstold() переводит строку в десятичное число, второй - void ldtoms(double) переводит число в форматированный массив строк. Вроде все работает за исключением самого большого числа $1,123,123,123,123,123.12 При таком значении неправильно переводит числа после запятой. Помогите, пожалуйста, найти ошибку. Заранее спасибо ![]()
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
читать описание стандартных функций: setlocale, printf, scanf
В принципе, потоки в C++ тоже корректно работать должны после вызова setlocale. Кстати, ты уверен, что тебе точности double хватит? Ведь для работы с деньгами используют алгоритмы бесконечной точности. |
|||
|
||||
NeuZeitgeist |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 24.11.2007 Репутация: нет Всего: нет |
Не уверен, что хватит double. Но с long double у меня почему-то не работает. Компилятор gcc выдает ошибки по форматированию. Про алгоритмы для денег я пока ничего не знаю, т.к. осваиваю азы. Мне уже объяснили, что проблема в переполнении double, но почему то компилятор дурит и с long double. Постараюсь еще покрутить, в чем там дело. Спасибо большое за советы по функциям. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
NeuZeitgeist, тебе нужно использовать бесконечную точность. Она, например, реализуется путем создания динамического массива десятичных разрядов...
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |