Round up the decimals


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Round up the decimals
# 1  
Old 09-25-2012
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
# 2  
Old 09-25-2012
bc is still an integer calculator, it just tracks the decimal point and adjusts later.

You can round up the same way in bc the same way you would in pure integer math. Add 0.5 (times 100) before you divide. Numbers that would round up will bump past nine, numbers that round down won't.

Code:
echo $((((749 * 75)+50) /100))

# 3  
Old 09-26-2012
Try like..
Code:
echo "561.76" | awk '{printf("%d\n",$0+=$0<0?-0.5:0.5)}'

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

One more..
Code:
printf "%.0f\n" "561.76"

# 4  
Old 09-26-2012
try this..

Code:
echo "561.76" | awk '{printf "%.0f",$0}'

awk 'BEGIN {printf "%.0f",( 749 * 75 /100) }'

# 5  
Old 09-26-2012
I have tried using this

Code:
awk 'BEGIN {printf "%.0f",($TOTAL_RECORDS * 75 /100) }'

but it returned 0 instead of 562

Did I do anything wrong .Please help me out.

Thanks
rajeevm

Last edited by Scrutinizer; 09-26-2012 at 10:41 AM.. Reason: code tags
# 6  
Old 09-26-2012
Quote:
Originally Posted by rajeevm
awk 'BEGIN {printf "%.0f",($TOTAL_RECORDS * 75 /100) }'
but it returned 0 instead of 562
try this..
Code:
awk -v VAR="$TOTAL_RECORDS" 'BEGIN {printf "%.0f",(VAR * 75 /100) }'

$TOTAL_RECORDS this is shell variable not awk..
# 7  
Old 09-26-2012
Thanks Pamu

That code for one but its not working for the second

which is I need to split the number of records into 75% and 25 % so i did this for 75 % just like you mentioned

but i implemented the same for 25 % like below
Code:
25%=`awk -v VAR="$TOTAL_RECORDS" 'BEGIN {printf "%.0f",(VAR * 25 /100) }'`

the result is 187 but instead of 188 as the result would be 749*25/100=187.25 in that I would be missing one record when I will these records to a file

I appreciate your help.

Thanks
rajeevm

Last edited by Franklin52; 09-26-2012 at 11:11 AM.. Reason: Please use code tags for data and code samples
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Decimals reading Python

Hello, i'm new in python. Consider that i have this function that read me some data from a serial : def GetData(): line = open(serialx).read() hash = line.find("#") when = line count = line # print when, count, line return (float(when), int(count)) it gives me the result... (2 Replies)
Discussion started by: Board27
2 Replies

2. Shell Programming and Scripting

Can expr deal with decimals?

Hello, Im trying to work on a small script for a formula converting temperatures, Celsius to fahrenheit. I have a formula, and it works.... it works every way I try it. But it keeps giving me the wrong results every time with expr. The formula for C to F would be: divide by 5, multiply by... (12 Replies)
Discussion started by: hxdrummerxc
12 Replies

3. Shell Programming and Scripting

Getting date in seconds with decimals

I am trying to get date to display decimal Desired output 1350386096256.12 I know this can be done with printf, but are not able to make it work. I have tested this and many otherprintf "%.2f" $(($(date +%s%N)/1000000)) (8 Replies)
Discussion started by: Jotne
8 Replies

4. UNIX for Dummies Questions & Answers

Regarding Decimals in Cshell

Hello... I am new to unix and I am wondering if in a C-shell script , Are we supposed to use only whole numbers........ for example..if a program needs to calculate the average of some numbers........ @ avg = (($1 +$2 + $3)/3)) is returning a whole number.........How can a decimal be achieved... (1 Reply)
Discussion started by: ravindra22
1 Replies

5. Shell Programming and Scripting

Decimals in TCSH

Hello, I want to run a loop with non-integer values (which I know I can't) so I've created a loop of integers and divided it by 10. However, these values are always rounded down to 1 significant figure. How do I get the script to keep and use the decimal value? My script is as follows #... (1 Reply)
Discussion started by: DFr0st
1 Replies

6. Shell Programming and Scripting

How to multiple decimals in linux

How to multiple decimals in Linux? When I do it like this i get an error message echo "$((1 * 1.1))" -bash: 1 * 1.1: syntax error in expression (error token is ".1") (4 Replies)
Discussion started by: 3junior
4 Replies

7. Shell Programming and Scripting

convert Regular decimals to Packed decimals

Hi, I am trying to find if there is a way to convert regular decimal values to Paced decimal values. I tried to find a c program but I could get a Packed converted to regular decimal not the other way round. If not unix please let me know if any other progrimming language I can use to do... (2 Replies)
Discussion started by: mgirinath
2 Replies

8. Shell Programming and Scripting

removing and rounding up decimals

Hi Experts, I have a command that gives me the output as below root@ckpgpay11core> cat sara | awk '{ sum += $1} ; END { print sum }' | awk {'print $1/90'} 8.88889 how do i remove the decimal spaces so that the figure will round itself to 9? Thanks. (3 Replies)
Discussion started by: aismann
3 Replies

9. Shell Programming and Scripting

Bourne and decimals??

I need to get 15% of the variable exer1 to be added to other exercises so far, i've got exer1=$1 aver=`expr $exer \* .15` but i keep getting an error that an integer value was expected. Is there anyway around this? (1 Reply)
Discussion started by: kdyzsa
1 Replies

10. Shell Programming and Scripting

handle decimals

Hi All, How we can handle decimals in (Float) in UNIX. a=73 b=5 c=`expr a / b` i am getting 14 but i need full 14.6 . Can any one help me pls? (1 Reply)
Discussion started by: subin_bala
1 Replies
Login or Register to Ask a Question