Rounding Script Help


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Rounding Script Help
# 1  
Old 11-26-2009
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
Code:
let value=$1;
while [ magn=1;"$value">\(magn*10\); magn*=10 ]
do
let digit=( $value/magn )%10
if [ $digit >= 5 ]
then
 $value+=( "10"-$digit )*$magn
else
 $value-=( $digit*$magn )
fi
done
echo $value

its supposed to take ./rounders 1447
and output 2000

I posted this in the OS sub forum also. NOOB mistake i know but hey its my first day. SOrry
# 2  
Old 11-26-2009
Your script seems to have a considerable disregard for syntax. I suggest you start with some minimal segments of your code and just see if they work.

---------- Post updated at 02:17 ---------- Previous update was at 02:02 ----------

Alright, here you go. I turned it further into a bash/ksh kind of script:
Code:
value=$1
for (( magn=1;value>magn*10; magn*=10 ))
do
  (( digit=(value/magn)%10 ))
  if (( digit >= 5 ))
  then
    (( value+=(10-digit)*magn ))
  else
    (( value-=(digit*magn) ))
  fi
done
echo $value

It doesn't work right, but at least it runs Smilie
# 3  
Old 11-27-2009
very cool. Thanks, I will play with it some more and try to get it to work. If i need more help I will post here again. Thanks so much, I was already getting frustrated.
# 4  
Old 11-27-2009
Quote:
Originally Posted by kingrj46
very cool. Thanks, I will play with it some more and try to get it to work. If i need more help I will post here again. Thanks so much, I was already getting frustrated.

variables cannot contain spaces, and neither should file names.

unix not windows...

actually most languages do not allow this, c/c++ java, to name a few.
# 5  
Old 11-27-2009
Quote:
Originally Posted by gcampton
variables cannot contain spaces, and neither should file names.

unix not windows...

actually most languages do not allow this, c/c++ java, to name a few.
Not sure I follow. I dont think i put any spaces in either. Is there something I missed?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

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

2. UNIX for Dummies Questions & Answers

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... (1 Reply)
Discussion started by: Ariean
1 Replies

3. Shell Programming and Scripting

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 (2 Replies)
Discussion started by: jacobs.smith
2 Replies

4. Shell Programming and Scripting

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

5. UNIX for Dummies Questions & Answers

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 (2 Replies)
Discussion started by: miniwheats
2 Replies

6. Linux

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

7. Shell Programming and Scripting

Rounding issue with awk

Hi Friends, I am trying to round following number. 0.07435000 echo "0.07435000"|awk '{printf "%s\n",$1*100}'|awk '{printf "%.2f\n",$1}' It returns: 7.435 It should return: 7.44 Any suggestion please? Thanks, Prashant (2 Replies)
Discussion started by: ppat7046
2 Replies

8. Shell Programming and Scripting

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

9. UNIX for Dummies Questions & Answers

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 (2 Replies)
Discussion started by: shash
2 Replies

10. Shell Programming and Scripting

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... (3 Replies)
Discussion started by: noodlesoup
3 Replies
Login or Register to Ask a Question