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

Как сохранить вещественное число, разбив его на два целых? - C++

Восстановить пароль Регистрация
 
fenix117
8 / 8 / 1
Регистрация: 16.03.2011
Сообщений: 249
10.01.2012, 15:23     Как сохранить вещественное число, разбив его на два целых? #1
Здравствуйте, мне нужно написать класс дробного числа, где первая целая часть это LongLong(его я реализовал, он беззнаковый), а вторая часть short int. Наткнулся на такую неприятность: например 5.05, 05 в short int не сохранится (ноль перед числом отбрасывается), посоветуйте, может кто сталкивался.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2012, 15:23     Как сохранить вещественное число, разбив его на два целых?
Посмотрите здесь:

В строке записано вещественное число в форме с фиксированной точкой. Преобразовать строку, записав в нее округленное до целых значение данного числа. C++
C++ Пользователь вводит с клавиатуры: начальную сумму, внесённую на депозит (вещественное положительное число), годовой процент (вещественное положительно
C++ Программа просит ввести число и умножить его на два, затем произведение умножить на два и т.д.
даны два целых числа K и N (N> 0). Вывести N раз число K C++
C++ Дано вещественное число A (> 1). Вывести наименьшее из целых чисел N, для которых сумма 1 + 1/2 + . + 1/N будет больше A, и саму эту сумму
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HighPredator
 Аватар для HighPredator
5352 / 1735 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
10.01.2012, 15:36     Как сохранить вещественное число, разбив его на два целых? #2
В вашем случае, думаю, будет рациональнее делать "реверс" числа. То есть. Хранить у числа 5.05 05 в виде 50. Таким образом вы не потеряете нули.
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
10.01.2012, 15:52     Как сохранить вещественное число, разбив его на два целых? #3
В short int влезет только 4 цифры
например число 1.12345678 ты уже не запишешь
Отсюда вывод - надо изменить способ сохранения числа
Вообще оригинально вещественное число хранится в виде знака мантиссы, мантиссы и порядка
http://ru.wikipedia.org/wiki/Число_двойной_точности
fenix117
8 / 8 / 1
Регистрация: 16.03.2011
Сообщений: 249
10.01.2012, 16:21  [ТС]     Как сохранить вещественное число, разбив его на два целых? #4
Цитата Сообщение от odip Посмотреть сообщение
В short int влезет только 4 цифры
unsigned short int – диапазон 0 … 65536;

Цитата Сообщение от odip Посмотреть сообщение
например число 1.12345678 ты уже не запишешь
в этом случае я буду генерировать исключение

Цитата Сообщение от odip Посмотреть сообщение
Отсюда вывод - надо изменить способ сохранения числа
Задание РГЗ, не мне его менять

Цитата Сообщение от HighPredator Посмотреть сообщение
В вашем случае, думаю, будет рациональнее делать "реверс" числа. То есть. Хранить у числа 5.05 05 в виде 50. Таким образом вы не потеряете нули.
Спасибо, так и буду делать

Всем плюс за отклик, спасибо что помогаете.
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
10.01.2012, 21:27     Как сохранить вещественное число, разбив его на два целых? #5
unsigned short int – диапазон 0 … 65536;
и что ?
Все равно влезет только 4 цифры
Задание РГЗ, не мне его менять
Ну тогда все понятно

Ну так храни только 4 цифры
0.1000 => 1000
0.0100 => 100
0.0010 => 10
0.0001 => 1
5.05 => 500
Yandex
Объявления
10.01.2012, 21:27     Как сохранить вещественное число, разбив его на два целых?
Ответ Создать тему
Опции темы

Текущее время: 04:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru