Sponsored Content
Top Forums Shell Programming and Scripting Sum the fields with 6 decimal places - getting only 2 decimal places as output Post 303013145 by brlsubbu on Thursday 15th of February 2018 04:52:11 PM
Old 02-15-2018
Sum the fields with 6 decimal places - getting only 2 decimal places as output

I used the below script to Sum up a field in a file based on some unique values. But the problem is when it is summing up the units, it is truncating to 2 decimals and not 6 decimals as in the input file (Input file has the units with up to 6 Decimals – Sample data below, when the units in the 2 rows below highlighted in red are added, I only get 2 decimal places 18.34).

Code:
awk -F "|" '{a[$2$3$4$5$6$7]+=$8;}END{for(i in a)print i"|"a[i];}' File1  > File2  
echo File2

|ACCT1 | XX | 00548  |02/13/2018 |548JN4 |L |18.424000
|ACCT2 | XY | 00551  |02/13/2018 |540JC7 |L |315.809000
|ACCT3 | XX | 00639  |02/13/2018 |368024 |L |4.000000
|ACCT4 | XX | 00652  |02/13/2018 |546QD4 |L |35.212000
|ACCT5 | XY | 00663  |02/13/2018 |5210E1 |L |16.242000
|ACCT5 | XY | 00663  |02/13/2018 |5210E1 |L |2.102000




Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules!

Last edited by RudiC; 02-15-2018 at 06:06 PM.. Reason: Added CODE tags.
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

trimm up the decimal places in output

I have a perl script that reports the avg time of a application call and the total number of calls. This works fine, however I would like to trim the number of decimal places reported from 12 to like 3 and I don't know how. Any suggestions? Here is what I use to get the avg time... for $eRef (... (2 Replies)
Discussion started by: theninja
2 Replies

2. Shell Programming and Scripting

Using the "Less Than" (-lt) switch on numbers with decimal places?

I'm using shell scripts to run some commands for the Configuration Management tool called Telelogic Synergy. I need to get the script to compare version numbers of files. The version numbers of the files are part of the actual filename, such as the following example: example_file-1... (7 Replies)
Discussion started by: Glyn_Mo
7 Replies

3. Shell Programming and Scripting

Four decimal places with awk

i have a script in which awk prints "($2-1700)/10000" and the answer is -0.07,but i want the answer in 4 decimal places. that is -0.0700. How can i sue awk to get my results in four decimal places (4 Replies)
Discussion started by: tomjones
4 Replies

4. Shell Programming and Scripting

Decimal places

i need to multiplay a number with 1.00.. so that the output should contain two decimal places at end.. for example... 236 * 1.00 = 236.00 245.8 * 1.00 = 245.80 but when i perform multiplication it shows output as. 236 245.8 can anyone help me to get the actual output of... (11 Replies)
Discussion started by: arunmanas
11 Replies

5. Shell Programming and Scripting

Arithmetic but keep 2 decimal places

I am trying to perform arithmetric, for example, to increment the value of variable $a (say 3) by 0.05 but when I tried the following expression let a=a+0.05 or a=$((a+0.05)) both returned 3.0499999999999998 I want to keep 2 decimal places so it returns 3.05 instead. (6 Replies)
Discussion started by: piynik
6 Replies

6. Shell Programming and Scripting

Bash Rounding to 2 decimal places

I have a number in a bash variable n, and want to round it to 2 decimal places. How can I do that? n=0.0867268 Need to have num=0.09 (1 Reply)
Discussion started by: kristinu
1 Replies

7. Shell Programming and Scripting

How to round up value upto 2 decimal places using sed?

Please help me in rounding up value upto 2 decimal palces using sed command #!/usr/bin/bash a=15.42 b=13.33 c=`echo $a*$b |bc -l` echo $c above code is is giving output "205.5486" but i want the output as "205.55" Thank you... (15 Replies)
Discussion started by: ranabhavish
15 Replies

8. Shell Programming and Scripting

Printing with decimal places from last 4 digits

I have input file like below, 201424|9999|OSS|622010|RGT|00378228764 201424|8888|OM|587079|RGT|00284329675 201424|7777|OM|587076|RGT|00128671024 201424|6666|OM|581528|RGT|00113552084 Output should be like below, should add decimal (.) from last 4 digits. ... (2 Replies)
Discussion started by: vinothsekark
2 Replies

9. Shell Programming and Scripting

Calculate the constant e to 14+ decimal places using integer maths.

Hi guys... I am loving this integer maths thing. 64 bit systems are certainly easier than 32 bit, but hey, I don't intend to leave out my fav' platform. Using one of the 'Brothers' methods, URL inside the code. #!/bin/sh # # #!/usr/local/bin/dash # e_constant.sh # Brother's formula . #... (2 Replies)
Discussion started by: wisecracker
2 Replies
QDoubleValidator(3qt)													     QDoubleValidator(3qt)

NAME
QDoubleValidator - Range checking of floating-point numbers SYNOPSIS
#include <qvalidator.h> Inherits QValidator. Public Members QDoubleValidator ( QObject * parent, const char * name = 0 ) QDoubleValidator ( double bottom, double top, int decimals, QObject * parent, const char * name = 0 ) ~QDoubleValidator () virtual QValidator::State validate ( QString & input, int & ) const virtual void setRange ( double minimum, double maximum, int decimals = 0 ) void setBottom ( double ) void setTop ( double ) void setDecimals ( int ) double bottom () const double top () const int decimals () const Properties double bottom - the validator's minimum acceptable value int decimals - the validator's maximum number of digits after the decimal point double top - the validator's maximum acceptable value DESCRIPTION
The QDoubleValidator class provides range checking of floating-point numbers. QDoubleValidator provides an upper bound, a lower bound and a limit on the number of digits after the decimal point. It does not provide a fixup() function. You can set the acceptable range in one call with setRange(), or with setBottom() and setTop(). Set the number of decimal places with setDecimals(). The validate() function returns the validation state. See also QIntValidator, QRegExpValidator, and Miscellaneous Classes. MEMBER FUNCTION DOCUMENTATION
QDoubleValidator::QDoubleValidator ( QObject * parent, const char * name = 0 ) Constructs a validator object with parent parent, called name, which accepts any double. QDoubleValidator::QDoubleValidator ( double bottom, double top, int decimals, QObject * parent, const char * name = 0 ) Constructs a validator object with parent parent, called name. This validator will accept doubles from bottom to top inclusive, with up to decimals digits after the decimal point. QDoubleValidator::~QDoubleValidator () Destroys the validator, freeing any resources used. double QDoubleValidator::bottom () const Returns the validator's minimum acceptable value. See the "bottom" property for details. int QDoubleValidator::decimals () const Returns the validator's maximum number of digits after the decimal point. See the "decimals" property for details. void QDoubleValidator::setBottom ( double ) Sets the validator's minimum acceptable value. See the "bottom" property for details. void QDoubleValidator::setDecimals ( int ) Sets the validator's maximum number of digits after the decimal point. See the "decimals" property for details. void QDoubleValidator::setRange ( double minimum, double maximum, int decimals = 0 ) [virtual] Sets the validator to accept doubles from minimum to maximum inclusive, with at most decimals digits after the decimal point. void QDoubleValidator::setTop ( double ) Sets the validator's maximum acceptable value. See the "top" property for details. double QDoubleValidator::top () const Returns the validator's maximum acceptable value. See the "top" property for details. QValidator::State QDoubleValidator::validate ( QString & input, int & ) const [virtual] Returns Acceptable if the string input contains a double that is within the valid range and is in the correct format. Returns Intermediate if input contains a double that is outside the range or is in the wrong format, e.g. with too many digits after the decimal point or is empty. Returns Invalid if the input is not a double. Reimplemented from QValidator. Property Documentation double bottom This property holds the validator's minimum acceptable value. Set this property's value with setBottom() and get this property's value with bottom(). See also setRange(). int decimals This property holds the validator's maximum number of digits after the decimal point. Set this property's value with setDecimals() and get this property's value with decimals(). See also setRange(). double top This property holds the validator's maximum acceptable value. Set this property's value with setTop() and get this property's value with top(). See also setRange(). SEE ALSO
http://doc.trolltech.com/qdoublevalidator.html http://www.trolltech.com/faq/tech.html COPYRIGHT
Copyright 1992-2001 Trolltech AS, http://www.trolltech.com. See the license file included in the distribution for a complete license statement. AUTHOR
Generated automatically from the source code. BUGS
If you find a bug in Qt, please report it as described in http://doc.trolltech.com/bughowto.html. Good bug reports help us to help you. Thank you. The definitive Qt documentation is provided in HTML format; it is located at $QTDIR/doc/html and can be read using Qt Assistant or with a web browser. This man page is provided as a convenience for those users who prefer man pages, although this format is not officially supported by Trolltech. If you find errors in this manual page, please report them to qt-bugs@trolltech.com. Please include the name of the manual page (qdoublevalidator.3qt) and the Qt version (3.1.1). Trolltech AS 9 December 2002 QDoubleValidator(3qt)
All times are GMT -4. The time now is 05:48 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy