|
5 / 5 / 0
Регистрация: 16.01.2011
Сообщений: 94
|
|
Как задать точность округления в среде разработки?16.01.2011, 22:48. Показов 26981. Ответов 8
Метки нет (Все метки)
Недавно столкнулся с тем, что любая переменная вещественного типа при инициализации и выводе этой же переменной на экран отображается лишь с шестью знаками. К примеру, если присвоить х = 10900.0905, то на экран выведется 10900.1 Интереса ради, завел переменную y=10900 и вычел ее из x (все переменные типа float). И, что бы вы думали, получилось? z=x-y = 0.0908203 Хотя результат уже почему-то до 6 знаков не округлился... Но вот если уже вместо float использовать double, то получится 0.0905, как и полагается, хотя x при первом выводе всё же округляется.
В общем понятно только то, что здесь что-то не то... то ли числа действительно округляются, то ли отображаются их округленные значения. А где это настраивается - так и не нашел... (Использую Embarcadero RAD Studio 2010)
0
|
|
| 16.01.2011, 22:48 | |
|
Ответы с готовыми решениями:
8
Каковая точность округления?
Точность округления в 1С8.2 Зарплата |
|
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
|
|
| 16.01.2011, 23:01 | |
|
никак не настраивается, читай про типы данных, их точность и вывод
0
|
|
|
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
|
|
| 17.01.2011, 10:14 | |
|
Bredorub, тип float дает очень плохую точность. Надо использовать double. Тем более все математические функции все равно приводят float к double.
Для управлением округлением в printf используется формат "%10.3f". Работает грамотно. При выводе через cout есть манипулятор precision. Как работает не знаю - не пользуюсь
1
|
|
|
5 / 5 / 0
Регистрация: 16.01.2011
Сообщений: 94
|
|
| 17.01.2011, 10:18 [ТС] | |
|
Где-то вычитал, что тип float по дефолту выводит лишь 6 значащих цифр. Почему тогда doulble тоже 6 цифр выводит когда должен выводить как минимум 10? Кстати, в Microsoft Visual Studio это вроде как настраивается, значит должно и в Embarcadero.
0
|
|
|
11 / 11 / 4
Регистрация: 27.09.2010
Сообщений: 32
|
||||||
| 17.01.2011, 10:22 | ||||||
|
Если я правильно понимаю о чем речь)
Типы данных вещественных чисел, их точность и отличия: Для хранения вещественных чисел в C++ используется два типа: float и double. При этом float занимает 4 байта, а double - 8. Диапазон значений float: 1,4 * 10^-45.. 3.4 * 10^38 Диапазон значений double: 4,94 * 10^-324.. 1.79 * 10^308 Форматированный вывод на экран:
float х=2.33333333333333333333333 printf("%.1f", x); на экран выведет: 2.3 printf("%.5f", x); на экран выведет: 2.33333 printf(" %.2e ", x); на экран выведет: 2.33e+000
1
|
||||||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 17.01.2011, 10:49 | |
|
Bredorub, да почему вы считаете, что это где-то в среде разработки настраивается? А если я через консоль компилирую - что, не видать мне больше 6 цифр? Это дело программы, а не среды - сколько цифр выводить. И решается это программно.
0
|
|
|
5 / 5 / 0
Регистрация: 16.01.2011
Сообщений: 94
|
|
| 17.01.2011, 12:26 [ТС] | |
|
silent_1991, хм... ну мне всегда казалось, что было бы проще один раз выставить это дело в опциях чем каждый раз задавать параметры округления программно.
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 17.01.2011, 12:27 | |
|
Bredorub, хм... Ну, видимо, это только вам так казалось, потому что пока никто этого делать не стал.
0
|
|
|
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
|
|||||||||||
| 17.01.2011, 12:45 | |||||||||||
|
Bredorub, Все в твоих руках.
Создай хедер bred.h, там напиши
1
|
|||||||||||
| 17.01.2011, 12:45 | |
|
Помогаю со студенческими работами здесь
9
Как задать точность?
Как задать точность числа Как задать максимальную точность? Как изменить шрифты в среде разработки? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|