П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 4096 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6756 раз(а).

Учебник HTML.
Просмотров 3717 раз(а).

Руководство по PHP5.
Просмотров 5991 раз(а).

Хостинг через призму DNS.
Просмотров 4809 раз(а).

Подборка текстов стандартных документов.
Просмотров 56244 раз(а).

Учебник PHP - Самоучитель
Просмотров 3702 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 8335 раз(а).

Внешние атаки...
Просмотров 4563 раз(а).

Учебник PHP.
Просмотров 3172 раз(а).

SSI в примерах.
Просмотров 175 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Руководство пользователя для GNU Awk

7. Выражения

7.4 Преобразования цепочек и чисел

Цепочки преобразуются в числа и числа преобразуются в цепочки, если этого требует контекст awk-программы. Например, если значение или foo или bar в выражении `foo + bar' окажется цепочкой, оно превращается в число перед выполнением сложения. Если численные значения встречаются при конкатенации цепочек, они превращаются в цепочки.

Рассмотрим следующее:

two = 2; three = 3 print (two three) + 4

Это печатает значение (численное) 27. Численные значения переменных two и three превращаются в цепочки и сцепляются вместе, а цепочка-результат опять преобразуется в число 23, к которому добавляется 4.

Если по какой-то причине нужно принудить число превратиться в цепочку, можно сцепить пустую цепочку "" с этим числом. Чтобы превратить цепочку в число нужно прибавить ноль к этой цепочке.

Цепочка превращается в число при интерпретации любого численного префикса как записи числа: "2.5" превращается в 2.5, "1e3" превращается в 1000, а "25fix" получает численное значение 25. Цепочки, которые нельзя интерпретировать как правильные числа, превращаются в 0. Точные правила, по которым числа превращаются в цепочки, определяются встроенной awk-переменной CONVFMT (см. главу 10 [Встроенные переменные], стр. 115).

Числа преобразуются с помощью функции sprintf (см. раздел 12.3 [Встроенные функции для действий с цепочками], стр. 137) и с CONVFMT как указателем формата. CONVFMT по умолчанию имеет значение "%.6g", которое печатает числа по крайней мере с 6 значащими цифрами. Для некоторых приложений требуется изменять ее для получения большей точности. Двойная точность на большинстве современных машин соответствует 16 или 17 десятичным цифрам. Странные результаты могут получиться, если CONVFMT получит значение, которое не помогает sprintf форматировать правильно числа с плавающей точкой. Например, если вы опустите `%' в формате, все числа будут выдаваться одной и той же постоянной цепочкой. Но если число целое, то результат преобразования будет всегда целым, независимо от значения CONVFMT.

В таком фрагменте кода:

CONVFMT = "%2.2f" a = 12 b = a ""

b получит значение  "12", а не "12.00" (d.c.).

До введения стандарта POSIX, awk предусматривало значение OFMT для преобразования чисел в цепочки. OFMT специфицирует выходной формат для печати чисел оператором print. CONVFMT было введено для отделения семантики преобразования от семантики печати. И CONVFMT и OFMT имеют по умолчанию значение "%.6g". В подавляющем большинстве случаев старые awk-программы не изменят своего поведения. Однако, такое использование OFMT нужно держать в памяти, если вы переносите вашу программу на другую реализацию awk; мы рекомендуем вместо изменения программы переносить сам gawk! См. раздел 6.1 [Оператор print], стр. 61, для полной информации об операторе print.

Назад | Вперед
Содержание (общее) | Содержание раздела



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru