Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
qwestcl
10 / 10 / 1
Регистрация: 30.09.2012
Сообщений: 172
#1

цифры после запятой - C++

02.11.2013, 23:22. Просмотров 776. Ответов 12
Метки нет (Все метки)

Нужно из float'ского типа достать значения после запятой.
к примеру имеем число 3.13 нужно получить в итоге int'овское 13.
учитывая:
целая часть всегда равна 3.
гарантировано то, что всегда есть дробная часть(или десятые или сотые).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2013, 23:22     цифры после запятой
Посмотрите здесь:

Цифры после запятой - C++
Уважаемые форумчаны, начал изучать С++, и вот столкнулся с такой проблемой: как отформатировать вывод вещественных чисел при помощи...

Цифры после запятой - C++
Доброго времени. Есть код, в котором переменная res в итоге равняется, к примеру 27,5 (float). Мне нужно вывести в файл результат с 3-мя...

Как убрать последние две цифры после запятой? - C++
Как убрать последние две цифры после запятой? остаток от деления? на с++

Почему после 51-го знака после запятой выводятся одни нули? - C++
В продолжение темы: тот же код, только с увеличенным количеством знаков после запятой: #include <iostream> #include <windows.h>...

При выводе числа с плавающей запятой теряются последние цифры - C++
Доброго времени суток! Мне дано число 0,1025390625. double отрезает конец и выводит 0.102539. Как мне сохранить это число целиком и...

Символы после запятой - C++
Приветствую Посмотрите пожалуйста код, по условию надо сделать что бы после запятой в ответе был ответ с точностью в 2 символа, но...

знаки после запятой - C++
Здравствуйте, простой вопрос на который я никак не могу найти ответ. Почему после компиляции, программа отказывается показывать знаки...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
02.11.2013, 23:26     цифры после запятой #2
Цитата Сообщение от qwestcl Посмотреть сообщение
целая часть всегда равна 3.
гарантировано то, что всегда есть дробная часть(или десятые или сотые).
int val=(3.13-3)*100, можно так вычислять!

int val=(peremenna_double - 3)*100
kventin_zhuk
БНТУ ФИТР
215 / 155 / 15
Регистрация: 26.12.2012
Сообщений: 382
02.11.2013, 23:27     цифры после запятой #3
qwestcl, остатком от деления % - если нужна вся целая часть. Если нет - то переводить в строку и парсить как-нибудь нужные цифры
ValeryS
Модератор
6534 / 5000 / 460
Регистрация: 14.02.2011
Сообщений: 16,627
02.11.2013, 23:33     цифры после запятой #4
Цитата Сообщение от kventin_zhuk Посмотреть сообщение
qwestcl, остатком от деления % - если нужна вся целая часть.
в плавающих нет остатка от деления
Цитата Сообщение от qwestcl Посмотреть сообщение
к примеру имеем число 3.13 нужно получить в итоге int'овское 13.
учитывая:
целая часть всегда равна 3.
гарантировано то, что всегда есть дробная часть(или десятые или сотые).
ну и как доставать?
чему равны инты
у таких чисел
3.3
3.23
3.454
3.999999
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
02.11.2013, 23:35     цифры после запятой #5
qwestcl, см функцию modf
kventin_zhuk
БНТУ ФИТР
215 / 155 / 15
Регистрация: 26.12.2012
Сообщений: 382
02.11.2013, 23:35     цифры после запятой #6
ValeryS, воу-воу, и действительно - что-то меня понесло
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
02.11.2013, 23:37     цифры после запятой #7
Да ладно он же вроде в условии всего только сотые, тысячных нет, то просто отак преобразовать да и все (3.13-3)*100 и получим 13, то что нада.
ValeryS
Модератор
6534 / 5000 / 460
Регистрация: 14.02.2011
Сообщений: 16,627
02.11.2013, 23:40     цифры после запятой #8
ninja2,
а если будет 3.139 ???
округлять или нет?
а если только десятые
3.3
в ответе 3 или 30?
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
02.11.2013, 23:44     цифры после запятой #9
C++
#include <iostream>
using std::cout;
using std::endl;
 
int main()
{
  float a = 3.91;
  a *= 100;
  int m = (int)a%10 == 0 ? (int)a/10-30 : (int)a-300;
  cout << m << endl;
}
Добавлено через 1 минуту
Цитата Сообщение от qwestcl Посмотреть сообщение
(или десятые или сотые)
гарантирует
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
03.11.2013, 00:00     цифры после запятой #10
Цитата Сообщение от ValeryS Посмотреть сообщение
а если будет 3.139 ???
округлять или нет?
а если только десятые
3.3
в ответе 3 или 30?
Ну если так, то записать в строку и распарсить.
ValeryS
Модератор
6534 / 5000 / 460
Регистрация: 14.02.2011
Сообщений: 16,627
03.11.2013, 00:08     цифры после запятой #11
Цитата Сообщение от ninja2 Посмотреть сообщение
Ну если так, то записать в строку и распарсить.
да нафига
programina, вон уже один ответ накидала, ты второй
я жду ответа от ТС чтобы правильно сделать
допустим можно так
C++
1
2
3
int a=(flt-3.0)*100;
if(a%10==0)
 a/=10;
если с округлением то так
C++
1
2
3
int a=(flt-3.0+0.005)*100;
if(a%10==0)
 a/=10;
qwestcl
10 / 10 / 1
Регистрация: 30.09.2012
Сообщений: 172
03.11.2013, 00:45  [ТС]     цифры после запятой #12
задача решена пользователем programina, спасибо.
а для чего добавляют именно это число 0.005при округлении?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2013, 00:49     цифры после запятой
Еще ссылки по теме:

нули после запятой - C++
Остаток на начало месяца Сумма всех элементов взимается этого клиента в этом месяце Сумма всех кредитов применяются на счет этого...

Количество символов после запятой - C++
cout &lt;&lt; &quot;Введите Е: &quot;; cin &gt;&gt; E; for (i = 1; fabs(drob)&gt;E; i++) { s1 += drob; drob*= -x*x / (i + 1); A++; } cout...

Табуляция и знаки после запятой - C++
Здравствуйте, помогите пожалуйста. Как сделать так, чтоб программа выводила данные в нормальном виде, То есть одинаковое количество...

2 знака после запятой и не только - C++
Здравствуйте форумчане 1)есть вопросик по поводу приведения результата выполнения кода в божеский вид... нужен результат типа x=2.50 F=...

Округление после запятой float - C++
Как прописать формат что бы после запятой было только 2 числа? Тип: FLOAT P.S. Код с пояснениями пожалуйста, изучение начал недавно.


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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6534 / 5000 / 460
Регистрация: 14.02.2011
Сообщений: 16,627
03.11.2013, 00:49     цифры после запятой #13
Цитата Сообщение от qwestcl Посмотреть сообщение
а для чего добавляют именно это число 0.005при округлении?
смотри число 0.123
нужно округлить до сотых и умножить на 100
получилось 12 (12.3--12 дробь отсекается )
теперь берем число 0.129
тоже получилось 12 (12.9--12) а нужно 13
добавляем 0.005
0.129+0.005=0.134*100=13.4--13
0.123+0.005=0.128*100=12.8--12
Yandex
Объявления
03.11.2013, 00:49     цифры после запятой
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru