![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Как сохранить количество нулей при операциях с двумя числами:
например: 20.0000 + 100.001000 = 120.001000 Есть готовая функция ? -------------------- i_i (';') (V) ![]() |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Где сократить число нулей? При форматировании в строку? Да, есть: %g для printf. Правда, при длинной мантиссе может перейти к научной нотации, так что, если это нежелательно, лучше написать свою ф-ю для убирания правых нулей, тем более, что это тривиально.
-------------------- ... |
|||
|
||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Нули не сохраняет. Велосипед изобретать не хочется Добавлено через 4 минуты и 59 секунд Я говорил не о сокращении количества нулей: 20.0000 + 100.001000 выводит 120.001, требуется 120.001000 Добавлено через 6 минут и 28 секунд Экспоненциальной форме ? Это я знаю, в моем случае неудобно. Скорее всего удобнее будет написать свою функцию, сохраняющую нули. -------------------- i_i (';') (V) ![]() |
|||
|
||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Придумал:
-------------------- i_i (';') (V) ![]() |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Для С (равно как и для С++) 10.0, 10.00, 10.000 и 10.000 одно и тоже, причем прямо на этапе компиляции. Так что сложно сохранить то, чего нет
|
|||
|
||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
-------------------- i_i (';') (V) ![]() |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Угу, а это значит, что это нельзя представить в виде встроенного float(double). Т.е. нужен специализированный класс. Твой вариант не самый лучший Лучше сделать класс, хранящий целую и дробную часть в виде целых чисел и длинны (можно для обоих частей, для целой и дробной)
И все - получаем нужный тип данных |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |