LINUX.ORG.RU

[C++] Ограничение точности числа с плавающей точкой (double, float)


0

1

Суть такова: с прибора приходят результаты измерений в формате, к примеру, double. С третьего-четвёртого разрядов после точки измеренное значение меняется от замера к замеру (неточности измерений, помехи всякие). Есть ли возможность средствами C++-stdlib, либо boost, ограничить точность после точки на уровне заданного разряда? Или же проще/правильнее будет умножить результат на 10^сколько-разрядов-оставить, и отбросить дробную часть?

А какие действия проивзодятся затем с результатми измерения, расскажешь? А то ведь если возведение в N-ю степень, я бы такое не рекомендовал делать.

adriano32 ★★★ ()

Такое отбрасывание означает уменьшение всех величин, что ещё больше увеличит неточности. Надо сначала определить по какому закону происходит разброс величин. По нормальному закону или какому-то ещё.

anonymous ()
Ответ на: комментарий от adriano32

> какие действия проивзодятся затем с результатми измерения?

Некое подобие регулятора. Удержание этих значений в заданном коридоре.

one_more_hokum ★★★ ()
Ответ на: комментарий от one_more_hokum

Ну если ничего перемножать не будешь, увеличивая погрешности, а просто сравнивать, то какая тебе разница? Вот анон тебе написал, применить стат методы или вообще, вычел из копии снятой величины нижнюю границу, из другой копии вычел верхнюю, вот и работай потом с этими дельтами. или чего-то не знаем?

adriano32 ★★★ ()
Ответ на: комментарий от psv1967

Если на шумы шевелится, то фильтровать надо данные цифровым фильтром. Хотя это смотря какой шум.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.