Visit Our UNIX and Linux User Community


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


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to round up value upto 2 decimal places using sed?
# 1  
Old 11-15-2013
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

Code:
#!/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...
# 2  
Old 11-15-2013
One of the ways:
Code:
c=`echo "scale=2;$a*$b" |bc -l`

This User Gave Thanks to bartus11 For This Post:
# 3  
Old 11-15-2013
Thanks but it is giving output "205.54" instead of "205.55"
# 4  
Old 11-15-2013
Using CygWin bash:-
Code:
AMIGA:~> text=42.377821
AMIGA:~> printf "%0.2f\n" $text
42.38
AMIGA:~> text=42.843821
AMIGA:~> printf "%0.2f\n" $text
42.84
AMIGA:~> _

# 5  
Old 11-15-2013
is there any sed command what can i use?
# 6  
Old 11-15-2013
A quick and dirty way:

Code:
echo "scale=2;($a*$b)+.01"|bc

This User Gave Thanks to in2nix4life For This Post:
# 7  
Old 11-15-2013
sed cannot do math. sed cannot round numbers.

This seemingly simple question is difficult to solve completely in bc itself because it simply does not calculate in that fashion. The rounding at least can be done by adding 0.005 and truncating down to two decimal places. I don't think adding 0.01 is correct.

Code:
a=15.42
b=13.33

c=`echo "($a*$b)+0.005" |bc -l`
OLDIFS="$IFS" ; IFS="."
        set -- $c
        c="${1}.${2:0:2}"
IFS="$OLDIFS"

echo $c

These 2 Users Gave Thanks to Corona688 For This Post:

Previous Thread | Next Thread
Test Your Knowledge in Computers #489
Difficulty: Medium
Because interpreted languages are not compiled, syntax errors do not become runtime errors.
True or False?

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

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... (4 Replies)
Discussion started by: brlsubbu
4 Replies

2. Shell Programming and Scripting

Decimal field round of

Hi, I want to round of decimal numbers in comma seperated lines till 2 decimal numbers. line will be like. ... (4 Replies)
Discussion started by: vishal0746
4 Replies

3. 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

4. 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

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

Retain upto 2 decimal point for numeric values

Hi I have a big file with lines like below <tr align="center" bgcolor="SEASHELL"><td>94% </td><td>4.62178 </td><td>73.4375 </td></tr> <tr align="center" bgcolor="SEASHELL"></td><td>97% </td><td>3.2962 </td><td>125 </td></tr> I want to format the file such that i get like below. i.e... (3 Replies)
Discussion started by: ningy
3 Replies

7. 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

8. 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

9. Shell Programming and Scripting

Round off the a Decimal value.

HI, I have a script which is used to calculate the Memory & CPU utilization a server. memx=`ssh -l siebel1 ${f} /usr/sbin/prtconf|grep -i 'Memory size'|tr -s " "|/usr/xpg4/bin/awk -F" " '{print $3 * 1024}'` v5=`ssh -l siebel1 ${f} vmstat 1 2 | tail -1 | tr -s " " | /usr/xpg4/bin/awk -v... (3 Replies)
Discussion started by: dear_abhi2007
3 Replies

Featured Tech Videos