| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Вывод вещественного числа |
| Автор: Yanochka 29.12.2004, 19:36 |
| Для вывода вещественного числа с ограниченным количеством разрядов в дробной части числа в языке есть специальная функция преобразования строки в вещественное число. Назовите эту функцию и напишите все значения атрибута, определяющего формат записи вещественного числа:____________ |
| Автор: Alex 29.12.2004, 20:49 | ||||||||||
| Преобразовывает действительное значение в строку, используя заданный формат, точность и число цифр Модуль Sysutils Объявление
Описание Функция FloatToStrF преобразовывает действительное значение Value в строку, используя заданный формат Format, точность Precision и число цифр Digits. Параметр Value - действительная константа или выражение. Возможные значения параметра Format означают следующее: ffGeneral - Основной числовой формат ffExponent - Научный формат ffFixed - Формат с фиксированной запятой ffNumber - Числовой формат ffCurrency - Монетарный формат Подробное описание всех этих форматов см. в TFloatFormat. Параметр Precision определяет точность преобразовываемого значения. Значение Precision должно быть не более 7 при преобразовании типа Single, не более 15 для Double, не более 18 для Extended. Параметр Digits совместно с Format определяют форматирование строки. Подробнее см. в описании TFloatFormat. Если преобразовываемое выражение окажется не числом, функция вернет значение "NAN". Если преобразовываемое значение превышает по модулю величину, допустимую для объявленного типа данных, функция вернет значение "INF" (бесконечность) или "-INF" (минус бесконечность). Определяет формат преобразования действительных чисел Модуль Sysutils Объявление
Описание Тип TFloatFormat определяет коды форматирования чисел с плавающей запятой в функциях FloatToText, FloatToStrF, FloatToDecimal, TextToFloat. В этих функциях одновременно с форматом указываются два параметра: Precision - точность, и Digits - число цифр. Возможные значения формата определяются следующими правилами форматирования: ffGeneral - Основной числовой формат. Число преобразуется по формату с фиксированной точкой или научному в зависимости от того, какой из них оказывается короче. Начальные нули удаляются, десятичная точка ставится только при необходимости. Фиксированный формат используется, если число разрядов слева от точки не больше указанной точности Precision и если значение не меньше 0.00001. В противном случае используется научный формат, в котором параметр Digits определяет число разрядов степени - от 0 до 4 ffExponent - Научный формат. Число преобразуется в строку вида "-d.ddd...E+dddd". Общее число цифр, включая одну перед десятичной точкой, задается параметром Precision. После символа "E" всегда следует знак "+" или "-" и до четырех цифр. Параметр Digits определяет минимальное число разрядов степени - от 0 до 4 ffFixed - Формат с фиксированной точкой. Число преобразуется в строку вида "-ddd.ddd...". По крайней мере одна цифра всегда предшествует десятичной точке. Число цифр после десятичной точки задается параметром Digits, который может лежать в пределах от 0 до 18. Если число разрядов слева от десятичной точки больше указанного параметром Precision, то используется научный формат ffNumber - Числовой формат. Число преобразуется в строку вида "-d,ddd,ddd.ddd...". Данный формат совпадает с ffFixed за исключением наличия в нем разделителей тысяч ffCurrency - Монетарный формат. Число преобразуется в строку, отображающую денежную сумму. Формат контролируется глобальными переменными CurrencyString, CurrencyFormat, NegCurrFormat, ThousandSeparator, DecimalSeparator, задаваемыми для монетарного формата разделом Currency Format элемента International Контрольной панели Windows. Число цифр после десятичной точки задается параметром Digits, который может лежать в пределах от 0 до 18 Для всех форматов действительные символы, используемые в качестве десятичной точки и разделителя тысяч определяются глобальными переменными DecimalSeparator и ThousandSeparator. Если S - строка, а R - действительное число или выражение, то оператор
даст следующие результаты при разных значениях R:
Оператор
даст те же результаты, но для корня из 2 число цифр результата не превысит заданного значения 7: 1,414214. Как правило, формат ffGeneral с ограниченным числом цифр наиболее удачен для большинства применений. |
| Автор: dm9 29.12.2004, 21:31 | ||||
Альтернатива:
5 - число знаков после запятой, t - вещественная переменная.
n - число знаков после запятой, t - вещественная переменная. У функции format есть ещё много интересных возможностей. |
| Автор: Yanochka 29.12.2004, 21:42 | ||
| Alex, dm9 Большое спасибо Записала вто как
не смотря на то что скажет препод |
| Автор: Alex 29.12.2004, 21:45 |
| dm9, боюсь ее препод скажит, что это слишком заумно |
| Автор: dm9 29.12.2004, 21:57 | ||
Yanochka, если так:
то циферка будет прижиматься к левому краю. Обычно так удобнее бывает Добавлено @ 21:58 Alex, надо сказать, о возможности передавать в ф-цию несколько переменных через одну я узнал только из хелпа по ф-ции Format. Интересная функция |
| Автор: Alex 29.12.2004, 22:02 | ||
dm9, просто
Из http://forum.vingrad.ru/index.php?showtopic=37892&hl=Задача&st=15 |
| Автор: dm9 29.12.2004, 22:23 |
| Понял PS Оффтоп, конечно, но прочитал задание в той теме и мне стало очень хорошо от того, что мне такое программировать не надо |
| Автор: Cheba 30.12.2004, 01:36 | ||
| К этому заданию слегка не подходит, но все же... В Паскале был, так называемый, форматированый вывод чисел:
Где первое число задает количество выводимых цифр, а второе количество цифр в дробной части. К сожалению, эта конструкция в Delphi работает только с write/writeln. Больше мне нигде не удалось ее задействовать... |
| Автор: Dimich 30.12.2004, 09:32 | ||
Как вариант могу предложить еще процедуру
|
| Автор: dm9 30.12.2004, 13:57 |
| Dimich, интересно |