![]() |
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| UNIX para usuarios avanzados y expertos Experto a experto. Aprender avanzada UNIX, los comandos de UNIX, Linux, Sistemas Operativos, Administración de Sistemas, Programación, Shell, Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD. |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
awk ayuda
Hola
En mi archivo hay 4 columnas que tengan campos de cantidad, pero yo estoy usando las diferentes cantidades por debajo de la awk-F "|" '(a + \u003d $ 1 + $ 2 + $ 3 + $ 4) END (printf ( "% f \ n", a))' archivo 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))' archivo 1123337200684,453613 Gracias, MR |
|
||||
|
Bienvenido al maravilloso mundo de la aritmética de punto flotante.
En primer lugar, awk utiliza coma flotante de doble precisión de representación interna de los números. La costumbre de la doble PRESISION límite es de 15 dígitos. Va a imprimir 19 - ¿necesita de todos ellos? Puede comprobar su sistema, puede proporcionar más de 15. A continuación, el camino es la realización de los awk añade fp es posiblemente la fuente del problema. Por $ 1 + $ 2 ..... probablemente lo sea el almacenamiento temporal de valores y obtener cantidades intermedias. El otro circuito probablemente hace un sencillo Además, con sólo una variable de almacenamiento temporal. Slop en la representación de números a medida que aumenta el paso intermedio a través de los valores y cantidades. Cuanto más valores intermedios, más posibilidad de error. La otra cuestión es que awk tiene que llamar para cada número atof lee in El número real almacenado en la memoria no puede ser exactamente representable en fp, y desde que está trabajando cerca del límite de doble precisión, unos pocos miles de los pequeños errores representa un cambio en el orden de un número entero. No es culpa de awk, que tiene que ver con la forma de trabajo fp números. Puedes intentar escribir un guión aC, en general, mejor que en grandes números. También puede intentar una simple aplicación con C largo doble de datos. |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|