| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Сохранить количество нулей |
| Автор: Voldemar2004 30.11.2009, 09:59 |
| Как сохранить количество нулей при операциях с двумя числами: например: 20.0000 + 100.001000 = 120.001000 Есть готовая функция ? |
| Автор: Earnest 30.11.2009, 10:02 |
| Где сократить число нулей? При форматировании в строку? Да, есть: %g для printf. Правда, при длинной мантиссе может перейти к научной нотации, так что, если это нежелательно, лучше написать свою ф-ю для убирания правых нулей, тем более, что это тривиально. |
| Автор: Voldemar2004 30.11.2009, 10:05 | ||
Нули не сохраняет. Велосипед изобретать не хочется Добавлено через 4 минуты и 59 секунд Я говорил не о сокращении количества нулей: 20.0000 + 100.001000 выводит 120.001, требуется 120.001000 Добавлено через 6 минут и 28 секунд Экспоненциальной форме ? Это я знаю, в моем случае неудобно. Скорее всего удобнее будет написать свою функцию, сохраняющую нули. |
| Автор: Voldemar2004 30.11.2009, 16:37 | ||
Придумал:
|
| Автор: xvr 30.11.2009, 16:42 |
| Для С (равно как и для С++) 10.0, 10.00, 10.000 и 10.000 одно и тоже, причем прямо на этапе компиляции. Так что сложно сохранить то, чего нет |
| Автор: xvr 30.11.2009, 23:29 | ||||||
Угу, а это значит, что это нельзя представить в виде встроенного float(double). Т.е. нужен специализированный класс. Твой вариант не самый лучший Лучше сделать класс, хранящий целую и дробную часть в виде целых чисел и длинны (можно для обоих частей, для целой и дробной)
И все - получаем нужный тип данных |