0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 42

Как избавиться от погрешности при выводе double?

10.10.2013, 18:20. Показов 3093. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
После того, как считал строку "3,2", перевожу во float, затем складываю с другим числом и получаю хрень непонятную
что-то вроде 1,2+2= 3,200000000476876.
В чем может быть проблема, как получать чистый ответ в виде: 1,2+2= 3,2?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.10.2013, 18:20
Ответы с готовыми решениями:

Как избавиться от мерцания при выводе массива?
вообщем есть массив 20x50. и его нужно часто выводит на консоль и происходит мерцание. что можно сделать чтоб его не было?

Как избавиться от экспоненциального вида при выводе числа
Вот программа, которая вычисляет факториалы чисел от 0 до 20. Факториал для чисел от 10 до 20 представляется в экспоненциальной форме. Как...

Накопление погрешности при выводе константы по циклу
Интересный эффект... пытался интегрировать по Симпсону, но обнаружил этот эффект. Кто подскажет, как от этого избавиться... ??? ...

7
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
10.10.2013, 20:29
C++
1
2
    float ff = 1.2+2;
    Edit1->Text = FormatFloat("0.0",ff);
Комп использует разложение в ряды и всё такое, поэтому у него float 2 + float 2 никогда не = 4
0
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 42
10.10.2013, 20:53  [ТС]
Цитата Сообщение от nick42 Посмотреть сообщение
C++
1
2
    float ff = 1.2+2;
    Edit1->Text = FormatFloat("0.0",ff);
Комп использует разложение в ряды и всё такое, поэтому у него float 2 + float 2 никогда не = 4
У меня такой код:
C++
1
2
3
4
5
  void My_math::input_num(AnsiString s)
{
   float x = StrToFloat(s);
   ary.push_back(x);
}
C++
1
2
3
4
5
6
7
  
Как в вектор засунуть сразу в формате "0.0"? 
  void My_math::input_num(AnsiString s)
{
   float x = StrToFloat("0.0",s);
   ary.push_back(x);
}
мб так?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
10.10.2013, 20:56
При чем тут это. Вас же не устраивают ЛИШНИЕ знаки после запятой при ВЫВОДЕ числа. Я и предложил функцию форматированного вывода, в котором определена точность представления результата...
0
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 42
10.10.2013, 21:02  [ТС]
Цитата Сообщение от nick42 Посмотреть сообщение
При чем тут это. Вас же не устраивают ЛИШНИЕ знаки после запятой при ВЫВОДЕ числа. Я и предложил функцию форматированного вывода, в котором определена точность представления результата...
я беру числа из массива
C++
1
  с= FormatFloat("0.0",ary[0])+FormatFloat("0.0",ary[1]);
"cannot convert Ansistring to float"
FormatFloat назначает точность?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
10.10.2013, 21:13
.. судя по прежним записям - ary у вас не массив, а структура (с массивом, возможно).
"0.0" определяет число выводимых после запятой знаков; в данном случае - один. Если до тысячных - то так: "0.000"
0
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 42
10.10.2013, 21:20  [ТС]
Цитата Сообщение от nick42 Посмотреть сообщение
.. судя по прежним записям - ary у вас не массив, а структура (с массивом, возможно).
"0.0" определяет число выводимых после запятой знаков; в данном случае - один. Если до тысячных - то так: "0.000"
ary - вектор, когда вытаскиваю из него элементы так
C++
1
с= FormatFloat("0.0",ary[0])+FormatFloat("0.0",ary[1]);
ошибка, не может преобразовать из ansistring во float(
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
10.10.2013, 21:24
Цитата Сообщение от Alex_Os Посмотреть сообщение
не может преобразовать из ansistring во float(
Первый признак - точка-запятая не соответствуют его пониманию float...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.10.2013, 21:24
Помогаю со студенческими работами здесь

Как изменить кол-во знаков после запятой при выводе значения свойства типа double в PropertyGrid
Мне нужно "обрезать хвост" у свойства типа double, но только при выводе в PropertyGrid, т. е. вариант типа: public double x { ...

Невразумительная точка останова при выводе double
Возникла небольшая проблемка в коде: void main() { int* mass; mass=(int*)malloc(sizeof(int)); I_List lst; double...

Тип double округляется при выводе в консоль
Здравствуйте! Вопрос такой: Есть тип double у которой максимальная вместимость 1.7 * 10^308 Мне надо хранить числа с макс...

Как избавиться от символов \??\ в выводе списка драйверов wmic?
Приветствую :) Есть скрипт: @echo off set TAG=???? if "%TAG%"=="????" set /p "TAG=Введите тег для поиска: " for...

Избавиться от погрешности в выделении дробной части
Нужно избавиться от погрешности в выделении дробной части #include <stdio.h> #include <math.h> int main() { int...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru