![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| MichaelKr |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 26.11.2004 Репутация: нет Всего: нет |
Дали задание написать класс "Обыкновенная Дробь" , одна из метод класса - создание обыкновенной дроби из десятичной. То есть я должен умножить десятичную дробь на число 10 в степени "количество знаков после запятой" и затем сократить (уже написал методу), но вот как узнать сколько их там есть ? В мантиссе типа double, 17 знаков по моему, но что то мне кажется что умножать на 10 в 17 и сокращать не поможет. Может есть какая-то функция по определению числа знаков после запятой ?
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
double, по-моему, хранит только 8 значащих цифр числа.
А мантисса содержит 308 знаков. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Точность
Для float 6 знаков (всего) Для double 15 (всего) Для long double 19 (всего) Всего означает до и после запятой. т.е если у float до запятой 3 знака, то после считаются ещё 3 и всё Тут надо мучится. потому как о стандартных функциях определения, сколько именно знаков после запятой я не слышал Да и плохо себе представлайю, как это сделать кроме как не стандартными методами... |
|||
|
||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
MichaelKr
Или не так? |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Нет. я думаю это просто числитель и знаменатель. Стандартное задание. Очень неплохо помогает начать понимать ООП Кстати полученный тип намного точнее даже дабла |
|||
|
||||
| Messages |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 26.3.2004 Репутация: нет Всего: нет |
Repeat ... until;
|
|||
|
||||
| MichaelKr |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 26.11.2004 Репутация: нет Всего: нет |
Именно. То есть если стандартных методов нету , то остается только умножать на 10 в степени максимальной экспоненты, брать от этого ( int ), и сокращать ? (кстати по моему 10 в 1024 степени в int не влезет) То есть получим что-то типа :
или я как всегда перенедопонял ? Это сообщение отредактировал(а) MichaelKr - 28.11.2004, 12:14 |
||||
|
|||||
| Messages |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 26.3.2004 Репутация: нет Всего: нет |
А зачем нам int? Целого числа в Double не существует? Да и нужно нам выделять несколько разрядов до и после запятой. Зачем нам ВСЁ? Дробь потои сократится, если на то пошло.
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |