Функция преобразования строки в вещественное число

Функция преобразования строки в вещественное число

Для ввода и редактирования информации можно использовать редакторы (однострочные Edit, LabeledEdit, MaskEdit и многострочные Memo и т.д.). Эти компоненты работают с символьным типом данных, т.е. вся информация, вводимая или выводимая через эти компоненты, должна быть текстовой. Для работы с числами используются специальные функции преобразования:

IntToStr (value:Integer):String — функция преобразования целого числа в сроку;

StrToInt(const:S:String):Integer – функция преобразования строки в число целого типа данных (если в строке содержатся нецифровые элементы или строка превышает максимальное целое, то программа выдаст ошибку);

FloatToStr(value:Extended):String – функция преобразования вещественного числа в строку;

StrToFloat(const:S:String):Extended – функция преобразования строки в число вещественного типа данных (при попытке преобразовать не число также возникнет ошибка). Если число меньше чем 0,00001, то результат преобразования будет в экспоненциальной форме. Программист может настраивать формат вывода вещественного числа, для этого используется функция FloatToStrF(Value: Extended; Format: TFloatFormat; Precision: Integer; Digits: Integer): string. Format может принимать следующие значения:

Ø ffGeneral – Универсальный формат вывода вещественных данных. Если количество в целой части больше Precision или число меньше чем 0,00001, то число будет выведено в экспоненциальной форме;

Ø ffExponent – Экспоненциальный формат вывода числа. Precision задает общее количество десятичных цифр мантиссы, Digits задает общее количество цифр в десятичном порядке;

Ø ffNumber — Универсальный формат вывода вещественных данных с фиксированным положением целой и дробной части. Precision задает общее количество цифр в представлении числа, Digits – количество цифр в дробной части. Используется символ разделителя тысяч при выводе больших чисел (для русифицированной версии Windows – пробел);

Ø ffCurrency – Денежный формат. Соответствует формату ffNumber, но в конце строки ставится символ денежной единицы страны (для русифицированной версии Windows – ‘р.’);

Читайте также:  Драйвера на панасоник kx mb263

Ø ffFixed – Формат вывода числа, соответствующий ffNumber без разделителя тысяч.

На рисунке 14 представлены результаты вывода вещественного числа при использовании функций FloatToStrF (для всех форматов).

Рисунок 14 — Пример вывода вещественных чисел

Не нашли то, что искали? Воспользуйтесь поиском:

Задача Преобразовать строку символов в соответствующее число и обратно.

При составлении программ часто возникает задача получения данных, например, введенных в поле редактирования в числовой форме и вывод результата в текстовое поле.
Число, которое принимает участие в вычислительных процедурах, должно быть представлено в виде строки символов, понятных пользователю, для вывода на экран.
Например, число 235 состоит из трех символов — ‘2’, ‘3’, ‘5’.
Целью рассмотрения данной задачи является приведение символьной строки к соответствующему ей числовому виду.
Для этого нужно разбить символьную строку на значащие разряды и выбрать цифры, соответствующие каждому значащему разряду.

Каждый символ цифры имеет соответствующий ему код в базовой таблице кодировки:

Символ цифры Десятичный код Шестнадцатеричный код Двоичный код
48 0x30 0011 0000
1 49 0x31 0011 0001
2 50 0x32 0011 0010
3 51 0x33 0011 0011
4 52 0x34 0011 0100
5 53 0x35 0011 0101
6 54 0x36 0011 0110
7 55 0x37 0011 0111
8 56 0x38 0011 1000
9 57 0x39 0011 1001

В соответствии с приведенной таблицей, значащая часть каждого символа цифры содержится в младшей тетраде битов (младших четырех разрядах). Для получения цифры, соответствующей символу, достаточно произвести операцию:
n = s & 0x0F;
где n — значащая цифра, s — символ цифры. Маска 0x0F позволяет оставить только младшие 4 значащих разряда. Старшие 4 разряда становятся равны 0.

При решении обратной задачи — представления числа в виде текстовой строки — каждая цифра значащего разряда преобразуется в соответствующий ей символ с помощью операции:
s = n | 0x30;
Указанная операция добавляет двоичное значение 0011 в старшие 4 разряда, тем самым формируя код символа из соответствующей значащей цифры.

Читайте также:  Как изменить размер рисунка в paint

Реализация на C++

Результат выполнения

Задача Преобразовать заданное вещественное число в строку символов с указанием количества разрядов после разделителя целой и дробной части.

В продолжение темы о преобразовании целого числа в строку символов, рассмотрим вопрос преобразования в строку символов вещественного числа.

Перед началом преобразования представим число в нормированной форме, а затем переведем в цифру целую часть полученного числа. Из нормированного числа вычитаем целую часть и умножаем его на 10.

Функция принимает два аргумента:

  • преобразуемое число в формате double ;
  • количество знаков после запятой

Возвращаемое значение — указатель на полученную после преобразования строку.

Реализация на C++

Результат выполнения

Ссылка на основную публикацию
Фотоаппарат сони dsc h50
Название объектива : Carl Zeiss Vario-Tessar Количество групп оптических элементов : 8 Количество оптических элементов : 13 Цифровой Zoom :...
Файл cms что это
Файлы формата CMS открываются специальными программами. Существует 2 типа форматов CMS, каждый из которых открывается разными программами. Чтобы открыть нужный...
Файл менеджер для windows 10 на русском
Менеджер файлов осуществляет просмотр, копирование, управление медиафайлами и папками на персональном компьютере. Он предоставляет функцию быстрого перемещения объектов для ускорения...
Фотоаппараты до 10000 рублей рейтинг
На российском рынке представлено настолько много фотоаппаратов и камер, что найдется модель на любой вкус. В том числе есть действительно...
Adblock detector