Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 18
1

Нужно отделить цифры после запятой в вещественном числе

21.10.2018, 07:56. Показов 1282. Ответов 5
Метки си (Все метки)

То есть, если дано число 567,34 нужно выделить 34. Есть идея перевести вещественное число в строку, найти запятую и вывести все то, что после нее. Какие есть другие способы? желательно с кодом. P.S все нужно сделать стандартными средствами, не используя функции вообще (modf,sprintf и др)
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2018, 07:56
Ответы с готовыми решениями:

Оставить одну цифру, после запятой, в вещественном числе
Скажите пожалуйста как оставить одну цифру в вещественном числе, после запятой, если есть команда....

Подсчитать количество цифр после запятой в вещественном числе
Доброго времени суток. Подскажите, пожалуйста, как посчитать кол-во цифр после запятой? Например в...

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

Поменять местами первую и вторую цифры в вещественном числе
дано вещественное число, надо поменять первую и вторую цифру в дробной части числа примечание....

5
1282 / 899 / 479
Регистрация: 05.12.2013
Сообщений: 2,961
21.10.2018, 08:00 2
C
1
float rem = num - (int)num
0
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 18
21.10.2018, 08:02  [ТС] 3
Я так и сделал, но он вычленит к примеру из числа 567.34 число 0,33999898
0
1506 / 904 / 584
Регистрация: 25.04.2016
Сообщений: 2,520
21.10.2018, 09:54 4
Числа с точкой не просто так называются числами с "плавающей" точкой. Дело в том, что любое такое число представляется в компьютере приближенно, точность обеспечивается лишь для нескольких знаков после запятой. Так что ничего удивительного в том, что вы получаете не точное значение, если округлите до двух знаков, получите те самые 0,34

То же будет если вы переведете число в строку, в строке может оказаться приближенное значение.

Фактически в си невозможно определить точное количество знаков, после запятой, впрочем, во многих других языках программирования - тоже. И это не беда языков программирования, это беда наших процессоров. Они до сих пор не знают как представить в оперативной памяти число 0.1.

Добавлено через 2 минуты
А что по вашему вопросу, не существует способа точно определить дробную часть числа.
0
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 18
21.10.2018, 10:31  [ТС] 5
Просто у меня стоит задача представить вещественное число в системе счисления от 2 до 16, с целой частью проблем нет, а с дробной приходится что то выдумывать, решив данную подзадачу, я бы смог решить основную, значит буду каждый символ записывать в массив что ли
0
1506 / 904 / 584
Регистрация: 25.04.2016
Сообщений: 2,520
21.10.2018, 10:45 6
Для задачи вы можете использовать любой метод, хоть строкой, хоть через приведение типа. Просто имейте в виду, что вычисления будут приблизительными. Лично я бы не сказал, что это ошибка, скорее у меня вопрос к преподавателю, который задал это задание. Какой частью спины он думал, давая задание, в котором изначально есть практически неотслеживаемая погрешность вычислений.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2018, 10:45

Функция, записывающая цифры в вещественном числе в обратном порядке
Здравствйте! Помогите пожалуйста написать функцию, записывающую цифры в вещественном числе в...

Выводит нули после точки в вещественном числе
Во втором массиве у выведенных чисел нули после точки, как исправить? #include<stdio.h>...

Как взять три цифры после запятой целыми числами но без нуля и запятой
Здравствуйте у меня такая проблема, я создаю рандомное число с float и мне нужно взять три цифры...

В числе оставить 2 знака после запятой, без округления
Подскажите пожалуйста. Что не могу додуматься как мне это осуществить. Есть число 993.0054. Надо...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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