Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2009, 10:22   #11
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,091
По умолчанию

1) После запятой точно высчитать число цифр не получится.
Записываете в float число 1.34, а оно будет храниться как какое-нибудь 1.33999999. Читайте про хранение чисел с плавающей точкой и особенности всего этого дела. Подсчитать то оно конечно всё подсчитается, но результат будет не тот, который ожидается.
2) Спецификаторов для точности никаких нет. Числа с плавающей точкой вообще неточные. Так что реализуйте либо свои числа с фиксированной точкой, либо готовые библиотеки какие-то ищите.
ЗЫ. А вообще смотря для чего всё это надо. Если задание такое в универе, то и вариант Consol пойдёт.
pu4koff вне форума Ответить с цитированием
Старый 30.09.2009, 10:45   #12
Дырдин
Пользователь
 
Аватар для Дырдин
 
Регистрация: 26.09.2009
Сообщений: 81
По умолчанию

Ну да в универе. Только вот еще способ для нахождения числа символов челой части попроще выцапал

double alpha;
int size;
cout <<"\n\t Vvedite drobnoe chislo = "<<
cin >>alpha>>
int y;
y = (int)alpha;
size=(sizeof y)/8;

З.Ы.: если что с синтаксисом простите, я в нем не очень, но идея верная 100%

Последний раз редактировалось Дырдин; 30.09.2009 в 10:48.
Дырдин вне форума Ответить с цитированием
Старый 30.09.2009, 11:22   #13
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,091
По умолчанию

Цитата:
Сообщение от Дырдин Посмотреть сообщение
Ну да в универе. Только вот еще способ для нахождения числа символов челой части попроще выцапал

double alpha;
int size;
cout <<"\n\t Vvedite drobnoe chislo = "<<
cin >>alpha>>
int y;
y = (int)alpha;
size=(sizeof y)/8;

З.Ы.: если что с синтаксисом простите, я в нем не очень, но идея верная 100%
Ничего, что size всегда будет равен нулю? sizeof y можно смело заменить на sizeof int, т.к. суть одна и та же будет. Каким образом это должно считать число символов мне не понятно
pu4koff вне форума Ответить с цитированием
Старый 30.09.2009, 11:44   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Через строковый параметр я знаю способ. Может кто проще подскажет
А чем этот способ сложен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.09.2009, 12:08   #15
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Количество цифр до запятой:

float x = 10;
int n = (int) log10(x) + 1;

без всяких циклов.
ds.Dante вне форума Ответить с цитированием
Старый 30.09.2009, 12:13   #16
Дырдин
Пользователь
 
Аватар для Дырдин
 
Регистрация: 26.09.2009
Сообщений: 81
По умолчанию

Через строковый параметр сложно, потому что я это не смогу объяснить если спросят)
Дырдин вне форума Ответить с цитированием
Старый 30.09.2009, 12:17   #17
Дырдин
Пользователь
 
Аватар для Дырдин
 
Регистрация: 26.09.2009
Сообщений: 81
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Ничего, что size всегда будет равен нулю? sizeof y можно смело заменить на sizeof int, т.к. суть одна и та же будет. Каким образом это должно считать число символов мне не понятно
Дело в том, что в учебнике написано, что : "Операция определения размера sizeof предназначена для вычисления размера объекта или типа в байтах". Для этого я и делю её на 8
Дырдин вне форума Ответить с цитированием
Старый 30.09.2009, 12:52   #18
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,091
По умолчанию

Цитата:
Сообщение от Дырдин Посмотреть сообщение
Дело в том, что в учебнике написано, что : "Операция определения размера sizeof предназначена для вычисления размера объекта или типа в байтах". Для этого я и делю её на 8
Размер объекта не меняется. Что 1 хранится в переменной int, что 10, что миллион - всегда 4 байта будет (по крайней мере в 32-битной ОС).
ЗЫ. Пора мне походу на пенсию, что про логарифм забыл. Вот что значит математики давно не было
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать количество рисунков в документе? Busine2009 Microsoft Office Word 7 15.07.2009 18:26
Как узнать количество таблиц в базе udpflood БД в Delphi 2 27.03.2009 00:06
Как узнать количество дисплеев и их разрешение crc83 Мультимедиа в Delphi 1 25.02.2009 01:11
Как узнать количество скачиваний файла с сайта? Dux PHP 34 02.02.2009 00:28
количество цифр и количество символов до первой гласной буквы 111111 Общие вопросы C/C++ 2 22.12.2008 12:15