|
Вопрос # 56/ вопрос открыт / |
|
Доброе время суток! :) Продолжаю изучать функции и компоненты Delphi :). Вот функции FloatToStrF передаётся 4 параметра: (выражение, формат, точность, количество_цифр). Меня интересует параметр формат. Обьясните какую функцию он выполняет, какие может принемать значения и хотелось бы услышать по подробнее о этих значениях.
 |
Вопрос задал: Жучков С. (статус: Посетитель)
Вопрос отправлен: 22 июня 2006, 11:28
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: mvp
type TFloatFormat = (ffGeneral, ffExponent, ffFixed, ffNumber, ffCurrency);
Описание с http://www.program.rin.ru/razdel/html/1060-1.html
ffExponent - Научная форма представления с множителем ехх ("умножить на 10 в степени XX"). precision задает общее количество десятичных цифр мантиссы, Digits - количество цифр в десятичном порядке хх. Число округляется с учетом первой отбрасываемой цифры:3,1416Е+00
ffFixed - Формат с фиксированным положением разделителя целой и дробной частей, precision задает общее количество десятичных цифр в представлении числа. Digits - количество цифр в дробной части. Число округляется с учетом первой отбрасываемой цифры:3,14
ffGeneral - Универсальный формат, использующий наиболее удобную для чтения форму представления вещественного числа. Соответствует формату ff Fixed, если количество цифр в целой части меньше или равно precision, а само число - больше или равно 0,00001, в противном случае соответствует формату ff Exponent: 3,1416
ffNumber - Отличается от ffFixed использованием символа-разделителя тысяч при выводе больших чисел (для русифицированной версии Windows таким разделителем является пробел). Для value = П *1000 получим 3 141,60
ffCurrency - Денежный формат. Соответствует ffNumber, но в конце строки ставится символ денежной единицы (для русифицированной версии Windows - символы "р."). Для value = П*1000 получим 3 141,60р.
Ещё могут пригодится переменные:
CurrencyString: String - Символ или символы денежной единицы; для русифицированной Windows ими являются символы "р."
CurrencyFormat: Byte - Определяет положение символов денежной единицы: 0 - $1; 1 - 1$; 2 - $ 1; 3 - 1 $; в русифицированной Windows используется формат 1 (1р.)
NegCurrFormat: Byte - Определяет формат отрицательной суммы: 0 = ($1); 1 = -$1; 2 = S-1; 3 = $1-; 4 = (1$); 5 = -1$; 6 = 1-$; 7 =1$-; 8=-!$; 9=-$!; 10=1 $-; 11 =$1-; 12=$-!; 13= 1- $; 14 = (S 1); 15 = (1 $); в русифицированной Windows используется формат 5 (-lp.)
ThousandSeparator: Char - Разделитель тысяч; в русифицированной Windows используется символ #166
DecimalSeparator: Char - Разделитель дробной и целой частей числа (', ')
CurrencyDecimals: Byte - Количество цифр после запятой в денежном формате. Обычно содержит 0, что блокирует вывод мелкой денежной единицы. Чтобы в сумме присут ствовали не только рубли, но и копейки, в переменную следует установить значение 2
P. S. Последние 4 переменные необходимо сохранять перед изменением, а потом возвращать на место во избежания проблем на разных машинах
 |
Ответ отправил: mvp (статус: 4-ый класс)
Время отправки: 22 июня 2006, 12:12
Оценка за ответ: 5
|
Ответ #2. Отвечает эксперт: Darya Ermakova
А в хелп все же стоит иногда заглядывать :) Переводчика под рукой не было, присылаю как есть:
ffGeneral
General number format. The value is converted to the shortest possible decimal string using fixed or scientific format. Trailing zeros are removed from the resulting string, and a decimal point appears only if necessary. The resulting string uses fixed point format if the number of digits to the left of the decimal point in the value is less than or equal to the specified precision, and if the value is greater than or equal to 0.00001. Otherwise the resulting string uses scientific format, and the Digits parameter specifies the minimum number of digits in the exponent (between 0 and 4).
ffExponent
Scientific format. The value is converted to a string of the form "-d.ddd...E+dddd". The resulting string starts with a minus sign if the number is negative, and one digit always precedes the decimal point. The total number of digits before the exponent in the resulting string (including the one before the decimal point) is given by the Precision parameter. The "E" exponent character in the resulting string is always followed by a plus or minus sign and up to four digits. The Digits parameter specifies the minimum number of digits in the exponent (between 0 and 4).
ffFixed
Fixed point format. The value is converted to a string of the form "-ddd.ddd...". The resulting string starts with a minus sign if the number is negative, and at least one digit always precedes the decimal point. The number of digits after the decimal point is given by the Digits parameter--it must be between 0 and 18. If the number of digits to the left of the decimal point is greater than the specified precision, the resulting value will use scientific format.
ffNumber
Number format. The value is converted to a string of the form "-d,ddd,ddd.ddd...". The ffNumber format corresponds to the ffFixed format, except that the resulting string contains thousand separators.
ffCurrency
Currency format. The value is converted to a string that represents a currency amount. The conversion is controlled by the CurrencyString, CurrencyFormat, NegCurrFormat, ThousandSeparator, and DecimalSeparator global variables, all of which are initialized from the Currency Format in the International section of the Windows Control Panel. The number of digits after the decimal point is given by the Digits parameter--it must be between 0 and 18.
 |
Ответ отправила: Darya Ermakova (статус: 8-ой класс)
Время отправки: 22 июня 2006, 12:54
Оценка за ответ: 2
Комментарий к оценке: В хелпе я смотрел. Мне нужно русское описание.
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 24 июня 2006, 14:21; участников в обсуждении: 1.
|
mvp (статус: 4-ый класс), 24 июня 2006, 14:21 [#1]:
Автору:
В комментарии было сказано "Ещё бы пояснения в коде..."
Кода ни в вопросе ни в ответе нет. Если Вам нужны ещё какие-то пояснения - спрашивайте здесь в мини-форуме или новый вопрос задайте - будем рады помочь
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|