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
but the answer is coming out as 90.0 instead of 99.6
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?
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
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 (2 Replies)
Discussion started by: shash
2 Replies
2. Shell Programming and Scripting
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... (2 Replies)
Discussion started by: damansingh
2 Replies
3. Linux
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... (0 Replies)
Discussion started by: kingrj46
0 Replies
4. Shell Programming and Scripting
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... (4 Replies)
Discussion started by: kingrj46
4 Replies
5. UNIX for Dummies Questions & Answers
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 (2 Replies)
Discussion started by: miniwheats
2 Replies
6. Shell Programming and Scripting
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, (3 Replies)
Discussion started by: keenboy100
3 Replies
7. Shell Programming and Scripting
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... (9 Replies)
Discussion started by: Gery
9 Replies
8. Shell Programming and Scripting
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 (2 Replies)
Discussion started by: jacobs.smith
2 Replies
9. UNIX for Dummies Questions & Answers
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... (1 Reply)
Discussion started by: Ariean
1 Replies
10. UNIX for Dummies Questions & Answers
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. (11 Replies)
Discussion started by: SanjayKumar28
11 Replies
LEARN ABOUT FREEBSD
atf-sh
ATF-SH(1) BSD General Commands Manual ATF-SH(1)
NAME
atf-sh [-s shell] -- interpreter for shell-based test programs
SYNOPSIS
atf-sh script
DESCRIPTION
atf-sh is an interpreter that runs the test program given in script after loading the atf-sh(3) library.
atf-sh is not a real interpreter though: it is just a wrapper around the system-wide shell defined by ATF_SHELL. atf-sh executes the inter-
preter, loads the atf-sh(3) library and then runs the script. You must consider atf-sh to be a POSIX shell by default and thus should not
use any non-standard extensions.
The following options are available:
-s shell Specifies the shell to use instead of the value provided by ATF_SHELL.
ENVIRONMENT
ATF_LIBEXECDIR Overrides the builtin directory where atf-sh is located. Should not be overridden other than for testing purposes.
ATF_PKGDATADIR Overrides the builtin directory where libatf-sh.subr is located. Should not be overridden other than for testing purposes.
ATF_SHELL Path to the system shell to be used in the generated scripts. Scripts must not rely on this variable being set to select a
specific interpreter.
EXAMPLES
Scripts using atf-sh(3) should start with:
#! /usr/bin/env atf-sh
Alternatively, if you want to explicitly choose a shell interpreter, you cannot rely on env(1) to find atf-sh. Instead, you have to hardcode
the path to atf-sh in the script and then use the -s option afterwards as a single parameter:
#! /path/to/bin/atf-sh -s/bin/bash
ENVIRONMENT
ATF_SHELL Path to the system shell to be used in the generated scripts.
SEE ALSO
atf-sh(3)
BSD
September 27, 2014 BSD