|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.03.2013, 20:42 | #1 |
Пользователь
Регистрация: 09.03.2013
Сообщений: 10
|
Перевод дробного числа в денежный формат
/*преобразование числа в денежный формат*/
#include <iostream> #include <cstdio> using namespace std; int main() { float fNum; // дробное число int rub; // целая часть числа (рубли) int kop; // целая часть числа (копейки) printf("Преобразование числа в денежный формат\n"); printf("Введите число: "); scanf("%f", &fNum); rub = (int)fNum; kop = fNum*100-rub*100; printf("%2.2f руб. - это %i руб. %i коп.\n", fNum, rub, kop); return 0; } Если я ввожу 15,05 - то ответ 15р 5к(все верно) а если 16,05 - то выдает 16р 4к Почему так? |
24.03.2013, 21:04 | #2 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,679
|
Вот так пробуйте....
Код:
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! Последний раз редактировалось Bugrimov; 24.03.2013 в 21:09. |
24.03.2013, 21:33 | #3 |
Пользователь
Регистрация: 09.03.2013
Сообщений: 10
|
Спасибо, частично работает.
scanf("%lf", &fNum); - а просто %d почему выдает ошибку... теперь в другом месте ошибка. 5,05 выдает 5р 4к Последний раз редактировалось dniks; 24.03.2013 в 21:48. |
26.03.2013, 13:03 | #4 |
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
вариант, который у меня работает.
Код:
Вся проблема была в Код:
вот мне тоже интересно - почему так случилось? |
27.03.2013, 14:29 | #5 |
Пользователь
Регистрация: 09.03.2013
Сообщений: 10
|
код из книги должен работать(опираясь на те знания которые есть*). ну почему то не работает как надо. на калькуляторе(считать) такой ошибки нет куда копейка убегает загадка.
|
27.03.2013, 14:42 | #6 |
Пользователь
Регистрация: 09.03.2013
Сообщений: 10
|
/*И так этот вариант работает если есть ошибка буду рад))) типы переменных из книги*/
/*преобразование числа в денежный формат*/ #include <iostream> #include <cstdio> #include <cstdlib> using namespace std; int main() { float fnum; // дробное число int rub; // целая часть числа (рубли) int kop; // целая часть числа (копейки) printf("Преобразование числа в денежный формат\n"); printf("Введите число: "); scanf("%f", &fnum); rub = (int)fnum; kop = fnum*100-rub*100+0.005; // вот здесь дописали + 0,005 printf("%2.2f руб. - это %i руб. %i коп.\n", fnum, rub, kop); return 0; } Последний раз редактировалось dniks; 27.03.2013 в 14:51. |
27.03.2013, 15:07 | #7 |
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
А в этом новом варианте у меня всё равно копеек нуль))
|
27.03.2013, 15:09 | #8 |
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
Ошибка как и в вашем старом варианте - scanf записывает интовое значение.
|
28.03.2013, 13:48 | #9 | |
Пользователь
Регистрация: 09.03.2013
Сообщений: 10
|
Цитата:
float fnum; // дробное число scanf("%f", &fnum); // 5.05 cout << fnum; // 5.05 должно быть только так. я вот не понимаю почему при формуле(высчитывания) мы должны прибавлять 0.005 |
|
28.03.2013, 19:48 | #10 |
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
Должно быть или так у вас есть?
у меня так не есть, а я ваш код копировала)) Вот мне странно. А 0,005 прибавляют для того, чтобы округлить? - теперь вопрос: округлить что? Наверное, при переводе, чтобы в большую сторону. Только вроде бы надо 0,5., или не надо 0,5... "мой код" работал, тот что выше. Вы его смотрели? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Денежный формат ячейки по условию | alexsampler | Microsoft Office Excel | 8 | 19.09.2011 01:55 |
Перевести число в денежный формат | Mirrok | Помощь студентам | 3 | 23.06.2011 18:28 |
Денежный формат | a.tryanov | Microsoft Office Access | 7 | 21.09.2010 19:27 |
Преобразование дробного числа в денежный формат. Delphi | LinMax | Помощь студентам | 2 | 11.06.2010 16:41 |
Перевод дробного числа в строку | пауэрлифтинг | Общие вопросы Delphi | 2 | 30.01.2010 20:18 |