How to round up on fives in unix?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to round up on fives in unix?
# 8  
Old 11-20-2009
Code:
for i in "$@" ;do
   x=$((i-${i#?}))
   printf "%12d ---- %d\n" $i $((${x%%0*}+1))${x#?}
done

Code:
$> ./test 15 99 12345678  44444445  1445
          15 ---- 20
          99 ---- 100
    12345678 ---- 20000000
    44444445 ---- 50000000
        1445 ---- 2000


Last edited by Scrutinizer; 11-20-2009 at 04:51 PM..
# 9  
Old 11-20-2009
Quote:
Originally Posted by Scrutinizer
Code:
echo $*|while read i ;do
   x=$((i-${i#?}))
   printf "%12d ---- %d\n" $i $((${x%%0*}+1))${x#?}
done


Naming your script xx.sh, this is what I get:

Code:
$ xx.sh 12
          12 ---- 20
$ xx.sh 16
          16 ---- 20
$ xx.sh 120
         120 ---- 200
$ xx.sh 120 23
/home/chris/scripts/xx.sh: line 3: 120 23: syntax error in expression (error token is "23")

Not what was wanted.

And, with your newer code:

Quote:
Originally Posted by Scrutinizer
Code:
for i in "$@" ;do
   x=$((i-${i#?}))
   printf "%12d ---- %d\n" $i $((${x%%0*}+1))${x#?}
done


Code:
$ xx.sh 120 23
         120 ---- 200
          23 ---- 30

Still wrong.
# 10  
Old 11-20-2009
Hi CFA,

I did post the wrong loop and corrected it, but you were faster Smilie.
I do believe however, that my script is correct and yours is not in this case.

I think the OP's third example contains a mistake and 12345678 should turn into 20000000 instead of 10000000

S.
# 11  
Old 11-20-2009
Quote:
Originally Posted by Scrutinizer
Hi CFA,

I did post the wrong loop and corrected it, but you were faster Smilie.
I do believe however, that my script is correct and yours is not in this case.

I think the OP's third example contains a mistake and 12345678 should turn into 20000000 instead of 10000000

That is not rounding to the nearest value.

12345678 is nearer 10000000 than 20000000.

12 is nearer to 10 than to 20.
# 12  
Old 11-20-2009
OK, from the examples and his phrasing I gathered the OP meant rounding up. On rereading it is a bit confusing. The last two examples are rounding up. Actually I think it is because of this phrase:
Quote:
if it is greater than ten round to the nearest 10

Last edited by Scrutinizer; 11-20-2009 at 05:18 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Issue in round of and exponential value

we are facing an issue where the sum of column value is getting rounded of before and after decimal. $ awk -F "|" '{{sum = sum + $11}} END{print sum}' ARINSO_GLD001.txt 6.07398e+07 -- initial value $ awk -F "|" '{{sum = sum + $11}} END{print sum}' ARINSO_GLD001.txt | awk '{ print... (2 Replies)
Discussion started by: nadeemrafikhan
2 Replies

2. Shell Programming and Scripting

Round off Number in File

Hi Guys, i am having a csv file where i need to round off numerical column to 2 decimal precision in specific columns. i need to ignore the first two line i.e the header columns and manipulate rest of the lines of the csv file. My columns are specific i.e i need to round off only 2nd,4th and... (13 Replies)
Discussion started by: rohit_shinez
13 Replies

3. Shell Programming and Scripting

Round up the decimals

Hi All, I would like to do the following in the shell script 561.76 to 562 I tried using this echo 'scale=0; 749 * 75 /100 ' | bc but just returned only 561 Please help me . I appreciate your help Thanks rajeevm (13 Replies)
Discussion started by: rajeevm
13 Replies

4. UNIX for Dummies Questions & Answers

Round Robin Algorithm

Hey, guys I have a task: Job Running time Priority A 10 3 B 6 5 C 2 2 D 4 1 E 8 4 All 5 jobs have the same arrival time. The question is, what is the average waiting time according to Round Robin algorithm. Quantum = 1 min. The answer that was given by a... (1 Reply)
Discussion started by: Anne_Stark
1 Replies

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

6. Shell Programming and Scripting

Round with awk

Hi, I have a problem. Basically I dont know how to use awk. I have a script (below) which works fine. What I want to do is somehow "pipe" in the input say 4.5 and have it give the anwer, I dont want ot have to type it in, since it will be running in a script. Any ideas how to do this???? ... (1 Reply)
Discussion started by: AnnaLynn
1 Replies

7. Shell Programming and Scripting

Round the column value :

Hi .... Iam having the file ....in which 3rd column is numerical having 8 decimal part... i want that to cut to 2 decimal part ... Source File : E100|0|19940.10104030|0|1ABC E103|1|19942.10195849|3|0ABC E100|0|19943.10284858|0|1ABC I want to be ...... Reulst: ... (4 Replies)
Discussion started by: satyam_sat
4 Replies

8. Shell Programming and Scripting

round a number

In a shell script - How do I round a decimal number (contained in a variable) to the nearest whole number? (2 Replies)
Discussion started by: achieve
2 Replies

9. Shell Programming and Scripting

round in KSH

Is there an easy way to round a number up in Korn shell? ie. 10.4 --> 11 Thanks. (6 Replies)
Discussion started by: here2learn
6 Replies

10. UNIX for Dummies Questions & Answers

how to round a value

Hello, In a unix shell script,i want to round a variabele to a nearest number Ex: set count=104.4 How can i round that to 105.? Thanks, Sateesh (2 Replies)
Discussion started by: kotasateesh
2 Replies
Login or Register to Ask a Question