The UNIX and Linux Forums  


Go Back   Die UNIX-und Linux-Foren > Top Foren > UNIX für Fortgeschrittene und Experten
.
Google unix.com



UNIX für Fortgeschrittene und Experten Expert-to-Experte. Erfahren Sie fortgeschrittene UNIX-, UNIX-Kommandos, Linux-Betriebssysteme, System-Administration, Programmierung, Shell, Shell-Skripte, 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 Tools Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 07-17-2008
mohan705 mohan705 is offline
Registrierte Nutzer
  
 

Join Date: Feb 2007
Beiträge: 134
awk Hilfe

Hi

In "meine Datei gibt es 4 Spalten, die Felder Menge, aber ich bin immer unterschiedliche Mengen mit dem unter den



awk-F "|" "(a + \u003d $ 1 + $ 2 + $ 3 + $ 4) END (printf ("% f \ n ", a))"-Datei

1123337200682,226562

awk 'BEGIN (FS \u003d OFS \u003d"|"} (for (i \u003d 1; i <\u003d NF; i + +) (a + \u003d $ i; n + +)) END (printf ( "% f \ n", a)) " Datei

1123337200684,453613



Danke,
MR
  #2 (permalink)  
Old 07-17-2008
Jim McNamara jim mcnamara is online now Forum Staff  
...@...
  
 

Join Date: Feb 2004
Ort: NM
Posts: 5789
Willkommen in der wunderbaren Welt der Floating-Point-Arithmetik.

Zunächst einmal, awk verwendet double precision floating point für die interne Darstellung der Zahlen.
Die übliche Begrenzung der doppelten presision ist 15-stellig. Sie drucken 19 - brauchen Sie alle von ihnen? Sie können, so kann es mehr als 15 sein.

Weiter ist die Art und Weise der Ausführung dieser awk fp fügt hinzu, ist möglicherweise die Ursache des Problems.
Für $ 1 + $ 2 ..... es ist wahrscheinlich vorübergehende Lagerung und sich Zwischenziele Beträge.
Die anderen Schleife wahrscheinlich eine einfache Ergänzung, mit nur einem temporären Speicher aus. Ungenauigkeit in der Darstellung von Zahlen erhöht, wie Sie Schritt durch Zwischen-Werte und Beträge. Die Zwischen-Werte, desto mehr mögliche Fehlerquellen.

Der andere Punkt ist, dass awk atof hat, um für jede Anzahl heißt es in. Die tatsächliche Zahl in den Speicher möglicherweise nicht exakt darstellbar in fp, und da Sie arbeiten in der Nähe der Grenze mit doppelter Genauigkeit, ein paar tausend der kleinen Fehler stellt eine Veränderung in der Größenordnung von einer ganzen Reihe.

Es ist nicht die Schuld von awk, es hat zu tun mit der Art, wie FP-Nummern arbeiten.

Sie können schriftlich ein BC-Skript, das im Allgemeinen nicht besser auf grosse Zahlen. Sie können auch versuchen, eine einfache C ca. mit langen Doppel-Datentypen.
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 06:40 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0