С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/55: Рейтинг темы: голосов - 55, средняя оценка - 4.67
10 / 10 / 1
Регистрация: 30.09.2012
Сообщений: 172

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

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

Студворк — интернет-сервис помощи студентам
Нужно из float'ского типа достать значения после запятой.
к примеру имеем число 3.13 нужно получить в итоге int'овское 13.
учитывая:
целая часть всегда равна 3.
гарантировано то, что всегда есть дробная часть(или десятые или сотые).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.11.2013, 23:22
Ответы с готовыми решениями:

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

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

Как получить цифры после запятой?
Не используя готовой функции. Нужен именно математический алгоритм, самый основной.

12
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
02.11.2013, 23:26
Цитата Сообщение от qwestcl Посмотреть сообщение
целая часть всегда равна 3.
гарантировано то, что всегда есть дробная часть(или десятые или сотые).
int val=(3.13-3)*100, можно так вычислять!

int val=(peremenna_double - 3)*100
0
БНТУ ФИТР
 Аватар для kventin_zhuk
215 / 155 / 42
Регистрация: 26.12.2012
Сообщений: 382
02.11.2013, 23:27
qwestcl, остатком от деления % - если нужна вся целая часть. Если нет - то переводить в строку и парсить как-нибудь нужные цифры
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
02.11.2013, 23:33
Цитата Сообщение от kventin_zhuk Посмотреть сообщение
qwestcl, остатком от деления % - если нужна вся целая часть.
в плавающих нет остатка от деления
Цитата Сообщение от qwestcl Посмотреть сообщение
к примеру имеем число 3.13 нужно получить в итоге int'овское 13.
учитывая:
целая часть всегда равна 3.
гарантировано то, что всегда есть дробная часть(или десятые или сотые).
ну и как доставать?
чему равны инты
у таких чисел
3.3
3.23
3.454
3.999999
1
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
02.11.2013, 23:35
qwestcl, см функцию modf
0
БНТУ ФИТР
 Аватар для kventin_zhuk
215 / 155 / 42
Регистрация: 26.12.2012
Сообщений: 382
02.11.2013, 23:35
ValeryS, воу-воу, и действительно - что-то меня понесло
0
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
02.11.2013, 23:37
Да ладно он же вроде в условии всего только сотые, тысячных нет, то просто отак преобразовать да и все (3.13-3)*100 и получим 13, то что нада.
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
02.11.2013, 23:40
ninja2,
а если будет 3.139 ???
округлять или нет?
а если только десятые
3.3
в ответе 3 или 30?
0
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
02.11.2013, 23:44
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 Посмотреть сообщение
(или десятые или сотые)
гарантирует
1
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
03.11.2013, 00:00
Цитата Сообщение от ValeryS Посмотреть сообщение
а если будет 3.139 ???
округлять или нет?
а если только десятые
3.3
в ответе 3 или 30?
Ну если так, то записать в строку и распарсить.
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
03.11.2013, 00:08
Цитата Сообщение от 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;
0
10 / 10 / 1
Регистрация: 30.09.2012
Сообщений: 172
03.11.2013, 00:45  [ТС]
задача решена пользователем programina, спасибо.
а для чего добавляют именно это число 0.005при округлении?
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
03.11.2013, 00:49
Цитата Сообщение от 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
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.11.2013, 00:49
Помогаю со студенческими работами здесь

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

В строке имеется одна точка с запятой (;). Подсчитать количество символов до точки с запятой и после нее.
В строке имеется одна точка с запятой ( ; ). Подсчитать количество символов до точки с запятой и после нее.

Почему после 51-го знака после запятой выводятся одни нули?
В продолжение темы: тот же код, только с увеличенным количеством знаков после запятой: #include &lt;iostream&gt; #include...

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

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru