## Rounding off using BC.

Rounding off using BC.
# 1
09-10-2006
Rounding off using BC.

Hello again.

I'm trying to use BC to calculate some numbers in a shell script.

I want to have the numbers rounded off to 1 decimal place.
for example:
initsize=1566720
zipsize=4733

I'm trying to get the ratio between them. the equation is:

((\$initsize-\$zipsize)/\$initsize)*100

so I'm trying to do this:

echo "scale=1; ((\$initsize-\$zipsize)/\$initsize)*100" | bc

it's obviously because the first part in the brackets is being rounded off before getting multiplied by 100.

I tried plsitting it up to work out hte first bit at 3 decimal places, then multiplying it by 100 with 1 deciaml place. but it still showed up with 3 decimal places.

any ideas?
 noodlesoup View Public Profile for noodlesoup Find all posts by noodlesoup
# 2
09-10-2006
I don't understand why it won't work either. But why don't you let bc calculate the number, then format it as a string using something like sed?
 nathan View Public Profile for nathan Find all posts by nathan
# 3
09-10-2006
yeah it's gotten to me.
I changed the equation to this (same thing just rearranged) and it works. strange!

((\$initsize-\$zipsize)*100/\$initsize)
 noodlesoup View Public Profile for noodlesoup Find all posts by noodlesoup
# 4
09-11-2006
I'm not sure why you find it strange...
 Perderabo View Public Profile for Perderabo Find all posts by Perderabo

## Rounding off a decimal

How to round off a decimal number to higher whole number using ceil command in unix? Eg. 4.41 or 4.11 or 4.51 should be rounded off to 5.

## How to restrict Rounding using Printf?

Hello, I am using bash shell on Linux OS, May i please know why is it rounding for big numbers but not for others, is there a workaround to print it as it is with out round off? printf '%'\''.2f\n' 9999999999999999999.99 10,000,000,000,000,000,000.00 printf '%'\''.2f\n' 99999999999999.99...

## Rounding off decimal values

Hi Friends, This is my last post for today. My input file is chr1 100 200 chr1 123 300 chr1 300 400 chr1 420 520 chr10 132344343 132348674 When I try using this command awk '{v=(\$3+\$2)/2; print \$0"\t"v}' 1 This is my output chr1 100 200 150 chr1 123 300 211.5

## Rounding number, but....

Dear Experts, I'm trying to find a way to round a number but in this way: 14367.577 ---> 14000 I used the following to round the number to the closer integer: echo \$var|awk '{print int(\$1+0.5)}' and also: xargs printf "%1.0f" However, they don't work for my above...

## AWK rounding up numbers

Hi, I have managed to round up numbers by using the following command: echo "5.54" | awk '{printf "%.0f\n", \$1}' result 6 How can I round up all the numbers in a column in a file and print the lines with the new calculated totals? Thanks,

## Rounding a decimal

Hi, I am currently using tcsh I am trying to round a decimal number to the ten-thousandths place For instance: 1.23456 is rounded up towards 1.2346 I am not looking for truncation, but for rounding. Anyone know how to do this with awk or expr? Thanks

## Rounding Script Help

I need some help with my rouding script. I have started pretty much from scratch and have no idea if its correct or even close but I have been trying and have gotten to this point. i keep getting syntax errors and im not sure what is wrong. Here is what I got let value=\$1; while do let...

## Rounding Script Help

I need some help with my rouding script. I have started pretty much from scratch and have no idea if its correct or even close but I have been trying and have gotten to this point. i keep getting syntax errors and im not sure what is wrong. Here is what I got let value=\$1; while do let...

## Rounding off to the next whole number

Hello, I searched a lot on this Forum. Please help me with the below problem. I want to divide two numbers and the result should be the next nearest whole number. E.G. Dividing 10.8/5 ideally gives 2.16. But the result should be 3 i.e. rounded off to the next whole number. Any help will...

## Rounding problem

Hi, Can any one help me in finding a solution for rounding off to 2 decimal places. I am using the following code: VAR1=.01292105263157894736 VAR2=`echo "scale=2; \$VAR1 * 100" | bc -l` The result I 'm getting is 1.29210526315789473600 But I need the output as 1.29 Thanks Shash