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

Урезание значений чисел - C++

Восстановить пароль Регистрация
 
TempuSFatumA
 Аватар для TempuSFatumA
1 / 1 / 0
Регистрация: 02.04.2013
Сообщений: 87
04.04.2013, 03:16     Урезание значений чисел #1
Здравия желаю!

Вследствие периодического возникновения такой проблемы (а точнее по желанию левой пятки) решил задать вопрос: как убрать ненавистное округление значений чисел, например переменной типа double со значением "123456789012345678.0" округляется до "123456789012345680.0"? Ведь, чем число больше, тем больше округляется его значение. Как от этого избавиться?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2013, 03:16     Урезание значений чисел
Посмотрите здесь:

C++ Записать в файл N действительных чисел. Найти наибольшее из значений модулей компонент с нечетными номерами.
C++ Смена в памяти значений двух целых чисел.
C++ Организовать ввод целых четных значений в одномерный массив с контролем вводимых чисел
C++ В двумерном массиве 5*4 целых чисел найти сумму абсолютных значений элементов каждой строки
C++ В двумерном массиве 5*4 целых чисел найти сумму абсолютных значений элементов каждой строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Praktolock
 Аватар для Praktolock
58 / 58 / 0
Регистрация: 29.11.2011
Сообщений: 272
04.04.2013, 07:42     Урезание значений чисел #2
double - число с плавающей точкой, его точность зависит от масштаба. используй типы данных с большим диапазоном значений. и советую не использовать нецелые типы данных для хранения заведомо целых значений, если уж у тебя необходимость работать с такими большими числами

Добавлено через 1 минуту
например тип int64 для твоего примера подойдёт
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
04.04.2013, 11:18     Урезание значений чисел #3
Избавиться от округления совсем нельзя, так как для этого нужны: бесконечная память, тип с бесконечной разрядностью и бесконечноразмерное устройство вывода, выводящее с бесконечной скоростью. Но можно задать точность, достаточную для любой конкретной задачи и для любой конкретной цели. В том числе, можно задать точность до миллиардных при масштабе где то около гугла. Для этого память, разрядность, размеры устройства вывода и скорость вывода должны быть просто большими. и дело здесь не конкретно в дабле, а в самом факте ограниченности отводимого под число места.
TempuSFatumA
 Аватар для TempuSFatumA
1 / 1 / 0
Регистрация: 02.04.2013
Сообщений: 87
04.04.2013, 11:54  [ТС]     Урезание значений чисел #4
Спасибо, Praktolock, taras atavin. Хоть частично, но помогло.
Yandex
Объявления
04.04.2013, 11:54     Урезание значений чисел
Ответ Создать тему
Опции темы

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