Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/120: Рейтинг темы: голосов - 120, средняя оценка - 4.71
 Аватар для KellyDink
6 / 6 / 0
Регистрация: 04.01.2012
Сообщений: 182
Записей в блоге: 44

Округление double до 2-х знаков

26.01.2018, 14:16. Показов 25778. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! я в отчаянии. как мне округлить double до 2-х точек?
я пробовала round(n*100)/100.0, пробовала round(n*100)/100 но в итоге получаются такие цифры -900.63999999999999. либо с 00000001 на конце? как мне избавиться от этого ненавистного хвоста?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.01.2018, 14:16
Ответы с готовыми решениями:

double округление с точность до N знаков
Добрый день, помогите пожалуста какую надо использовать функцию чтобы была возможность округлить значение числа double с точностью до N...

Visual Basic 2013 сложение чисел, округление до 2 знаков после запятой, отбрасывание знаков
Как сложить несколько чисел из TextBox, округлить их, отбросить знаки после запятой? показать результат в TextBox

Количество знаков после запятой double, Long double
Есть число большой точности A. A=-1.768573656315270993281 742915329544712934120053405549882 337511135282776553364635382011977 ...

31
 Аватар для KellyDink
6 / 6 / 0
Регистрация: 04.01.2012
Сообщений: 182
Записей в блоге: 44
01.02.2018, 16:26  [ТС]
Студворк — интернет-сервис помощи студентам
что из этого система исчисления, что число, а что математические знаки?
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
01.02.2018, 19:07
Система исчисления десятичная, знаки - возведение в степень. https://www.cyberforum.ru/cgi-bin/latex.cgi?15\cdot{10}^{3} и https://www.cyberforum.ru/cgi-bin/latex.cgi?x\cdot{2}^{y}

Добавлено через 4 минуты
Найти целые x и y, если x меньше 100 (например), чтобы эти два выражения стали равными.

P.S. https://www.cyberforum.ru/cgi-bin/latex.cgi?15 000 = 1875\cdot{2}^{3}, а поскольку 1875 на 2 не делится нацело, т.к. нечётное, то представить его в виде https://www.cyberforum.ru/cgi-bin/latex.cgi?x\cdot{2}^{y} можно только в том случае, если в x (мантису) можно будет вписать всё число 1875. Если нельзя, то дальше будет округление. То есть останется только, например, https://www.cyberforum.ru/cgi-bin/latex.cgi?58\cdot{2}^{8}, то есть 14848 вместо 15 000.
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,316
02.02.2018, 09:34
Цитата Сообщение от KellyDink Посмотреть сообщение
C++ (Qt)
1
round(a*100)/100,0;
я сначала писала всевозможные отдельные функции, но потом и правда поняла, что бесполезно. так что оставила это. у меня 12000 значений, где-то треть из них хвостатые.
Здесь мало экстрасенсов. Приведите не одну строчку, а весь ваш код, который некорректно работает. Откуда появляются 12000 значений и что вы с ними потом делаете. Как узнаёте, что треть из них хвостатые - при выводе на экран?

Приведите пример хоть одного "хвостатого" значения, которое не округляется.

Я счас сгенерирую 12000 случайных чисел double с "хвостами" - с многими цифрами после запятой, округлю их до 2-х цифр после запятой и выведу на экран. Интуиция мне подсказывает, что все они выведутся без хвостов. Потому что Qt работает правильно, это у вас в программе какой-то косяк.
0
 Аватар для KellyDink
6 / 6 / 0
Регистрация: 04.01.2012
Сообщений: 182
Записей в блоге: 44
02.02.2018, 14:19  [ТС]
TRam_
ок. поняла, но я-то делю на 100. а 100 это такое магическое число, которое не должно оставлять за собой хвосты. т.к. система у меня десятичная, то чисто в теории ничего больше, чем передвинутая точка не должно произойти.

alexu_007
=) между моим косяком и QTовским я тоже больше поверю в первое)
Но я думаю, что правы форумчане (я не смогла придумать корректного слова, чтобы назвать людей, которые мне ответили) которые сказали, он просто так отображает(
хотя в базу он иногда тоже записывает с хвостом. Но в основном при дебаге лицезрею этот самый хвост.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
02.02.2018, 15:35
KellyDink, еще один возможный выход из ситуации - считать все в целых числах, в "копейках".
Правда здесь другая засада. Пусть x = 100, y = 100/3 = 33, z = 2*y = 66
Y + z = 99 != 100
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
02.02.2018, 16:15
Цитата Сообщение от KellyDink Посмотреть сообщение
т.к. система у меня десятичная
Если в твоей базе данных используется тип double, значит система у тебя двоичная. Плавающие точки с десятичным множителем современные процессоры считать не умеют, так что типа данных под такое не предусмотрено. Хотя можешь самостоятельно написать класс для расчётов с ними, но... Как выше сказано - используй целые числа, в особенности "большие целые числа". Тогда потери точности будут только при выполнении арифметических операций.

Добавлено через 2 минуты
А при записи/чтении представления в десятичном виде потерь не будет. Если конечно число "влезет".
0
 Аватар для KellyDink
6 / 6 / 0
Регистрация: 04.01.2012
Сообщений: 182
Записей в блоге: 44
09.02.2018, 17:15  [ТС]
кто там требовал пруфов?
вот так он иногда записывает в бдушечку( жутко бесит
Миниатюры
Округление double до 2-х знаков  
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
09.02.2018, 20:45
А читает эту базу данных кто?
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,316
10.02.2018, 08:57
Либо вы что-то делаете не так, либо ваша база глючит (записываете туда -9.86, а попадает в базу -9.8600000000001), либо косячит вывод из базы на экран.

По тем крохам информации, которую вы выкладываете, трудно понять и подсказать что-либо конкретное.
0
 Аватар для KellyDink
6 / 6 / 0
Регистрация: 04.01.2012
Сообщений: 182
Записей в блоге: 44
12.02.2018, 12:05  [ТС]
читает либо он же либо php. еще ее просматриваю я))))
ну кстати с чтением проблем не возникает. ибо я по этим значениям строю график и умный php сам разбирается с этими значениями.

Цитата Сообщение от alexu_007 Посмотреть сообщение
Либо вы что-то делаете не так, либо ваша база глючит (записываете туда -9.86, а попадает в базу -9.8600000000001), либо косячит вывод из базы на экран.
ну картинка выше это обыкновенный pgadmin. Врядли он может косячить) что нужно выложить-то? как я получаю эти даблы? не могу понять, как это может повлиять на проблему
Code
1
 Array[y].sigma = round((sqrt(fsum2/(i) - fmean*fmean))*100)/100;
вот так считаю много-много раз. очень много.....
записываю в бдушечку вот так

C++
1
2
3
4
5
6
7
8
9
10
11
   QSqlQuery query;
    QString queryStr = QString("INSERT INTO %1 (id, value) VALUES ").arg(table);
              for (int i = 0; i < sigma.size(); i++){
                  double sigma = sigma.at(i);
                  queryStr += QString("(%1, %2), ").arg(id).arg(sigma);
              }
              queryStr.remove(queryStr.size() - 2 , 1);
              if(!query.exec(queryStr)){
                  qDebug() << "Fails insert into DB!  " << query.lastError().text();
              }
              query.clear();
я могла бы поверить, что косячит бдушечка, но именно так я вижу эти даблы после округление в дебаге( так что опять же больше смысла в том, что кьют так считает, а не бдушечка
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
12.02.2018, 12:28
C++
1
.arg(id).arg(sigma, 0, 'f', 3)
0
 Аватар для KellyDink
6 / 6 / 0
Регистрация: 04.01.2012
Сообщений: 182
Записей в блоге: 44
14.02.2018, 13:25  [ТС]
крутотишка! так работает! а для query.bindValue так можно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.02.2018, 13:25

Округление до 2 знаков
Добрый день!Не могу реализовать округление до 2 знаков после запятой #include &lt;cstdio&gt; #include &lt;cstdlib&gt; #include...

Округление до двух знаков
как забить формулу с округлением до двух знаков?:)

Округление знаков в ASP.
Добрый день. Подскажите пожалуйста. Такая ситуация. В хранимой поцедуре на SQL выполняется запрос Select * from таблица. Таблица...

Округление Double
Использую Double, возникают при тонких расчетах проблемы с округлением. Какие есть стандартные способы решения? :)

Округление double
Короче ввожу число 1.05 в Debug показывает его, как 1.004999999999999999995663191310058 вот как эту чушь убрать, у меня задача из-за...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Нейтральные знания ..., ... чистая наука. Пока что-то проходит модерацию на Хабре, стоит развить мысль ...
Hrethgir 20.07.2026
К таким радикальным взглядам я конечно в той публикации не приходил, но чтобы скоротать вечер, решил углубиться немного. 1. Почему показания термометра заряжены целью? Цель заложена в самом. . .
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ По ссылке 403. Не очень информативно такую ссылку постить. Запись от Usaga размещена Сегодня в 06:46 . . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru