The UNIX and Linux Forums  

Go Back   В UNIX и Linux Форумы > Топ форумы > UNIX перспективных И опытных пользователей
.
Google unix.com



UNIX перспективных И опытных пользователей Эксперт-на-экспертов. Узнайте современные UNIX, UNIX команды, Linux, операционные системы, системы управления, программирование, Shell, Shell скриптов, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 07-17-2008
mohan705 mohan705 is offline
Зарегистрированный пользователь
  
 

Регистрация: Февраль 2007
Сообщений: 134
AWK помочь

Привет

На мой файл Есть 4 колонки имеющие размер поля, но я получаю разные суммы, используя ниже своего



AWK-F "|" '(A + \u003d $ 1 + $ 2 + $ 3 + $ 4) END (printf ( "% F \ N", A))' файл

1123337200682,226562

AWK 'BEGIN (FS \u003d (ФУСШ \u003d"|"} для (i \u003d 1; I <\u003d Н.Ф.; I + +) (A + \u003d $ I, N + +)) END (printf ( "% F \ N", A))' файл

1123337200684,453613



Спасибо,
MR
Old 07-17-2008
Джим Макнамара jim mcnamara is online now Forum Staff  
...@...
  
 

Регистрация: Февраль 2004
Местонахождение: Н. М.
Сообщения: 5807
Добро пожаловать в удивительный мир арифметики с плавающей точкой.

Во-первых, AWK используется двойной точности с плавающей точкой для внутреннего представления чисел.
Обычно лимит двойных presision 15 цифр. Вы находитесь печати 19 - нужно все из них? Вы можете проверить вашу систему, она может обеспечить более чем 15.

Далее путь AWK выполняет те семьи, возможно, добавляет источник проблемы.
За $ 1 + $ 2 ..... он, вероятно, является временное хранение ценностей и получение промежуточных сумм.
Другой цикл, вероятно, делает простым того, только с одной переменной температуры хранения. Отстойные в представлении чисел увеличивается, как вы шаг через промежуточные значения и суммы. Чем больше промежуточных значений, тем больше возможных ошибок.

Другой вопрос заключается в том, что AWK имеет позвонить atof для каждого номера она читает дюйм Фактическое число хранящихся в памяти, не может быть точно представимых в ПС, и, поскольку вы работаете вблизи предела двойной точностью, несколько тысяч небольших ошибок представляет собой изменение порядка целого числа.

Это не вина AWK, это связано с образом FP чисел работу.

Вы можете попробовать написания сценария до н.э., он обычно делает лучше на больших чисел. Вы также можете попробовать просто C ок с длинным двойным данных.
Closed Thread

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 05:32 AM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0