Shell arithmetic : operations on decimal points


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell arithmetic : operations on decimal points
# 1  
Old 04-09-2014
Shell arithmetic : operations on decimal points

i am having a varialbe a , which is input to my file
i want to multiply this input with value .43, and assign it to variable b.
i tried it as below:
Code:
#!/bin/sh
a=$1
b=`expr $1\*0.43`
echo b=$b

error : expr: non-integer argument


Please tell me , how to do this.

Thanks

Last edited by Scott; 04-09-2014 at 06:36 AM.. Reason: Please use code tags
# 2  
Old 04-09-2014
This way:
Code:
#!/bin/sh

a=$1
b=$(echo "$a * 0.43"|bc)
echo $b

# 3  
Old 04-09-2014
Hi Klashxx,

if i try that code, it gives error:
Code:
./test: syntax error at line 5: `b=$' unexpected


Last edited by Scott; 04-09-2014 at 07:23 AM.. Reason: Code tags
# 4  
Old 04-09-2014
If you're using an old SH (probably on Solaris), you might have to revert to using backquotes, as in your original code
Code:
b=`...`

You can also use printf in place of bc
Code:
b=`printf "%.2f"  $1*0.43`

# 5  
Old 04-09-2014
Hi Scott,

It would b great if u correct this code itself and show me:

Code:
#!/bin/sh  a=$1 b=$(echo "$a * 0.43"|bc) echo $b


Last edited by Scott; 04-09-2014 at 07:28 AM.. Reason: Code tags
# 6  
Old 04-09-2014
I already did, or so I thought. Do you have all that code on one line? If so, why? If not, please post it as it is in your script. We don't need to be second guessing exactly what you have written.

It would be nice if you used Code Tags so I wouldn't have to spend my time adding them for you.
# 7  
Old 04-09-2014
#!/bin/sh

Code:
a=$1
b=$(echo "$a * 0.43"|bc)
echo $b

---------- Post updated at 04:04 PM ---------- Previous update was at 04:00 PM ----------

Code:
#!/bin/sh

a=$1
b=`printf "%.2f"  $1*0.43`
##b=$(echo "$a * 0.43"|bc)
echo $b

Result:
Code:
printf: 10*0.43: value not completely converted
10.00

expected ans 4.3

Last edited by Scott; 04-09-2014 at 07:35 AM.. Reason: Use code tags, please...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Help with decimal points

Hi All, I would like to set decimal point to 16 in the following bash script but it has syntax error at }: awk '{printf"%.16e", (a<500,a++,$1/(a*1.1212121212121229e-02))}' input.dat >output.datHow may I set it in the correct way please? Thank you very much! (6 Replies)
Discussion started by: sxiong
6 Replies

2. Shell Programming and Scripting

Performing arithmetic operations on output of `wc -l`

Hi I want to perform arithmetic operations on output of `wc -l`. for example user046@sshell ~ $ ls -l total 0 where "total 0" will increase one line in wc -l filecount=`ls -l | wc -l` here $filecount will be 1 but is should be 0 how to get rid of it ? (1 Reply)
Discussion started by: anandgodse
1 Replies

3. UNIX for Dummies Questions & Answers

Multiple arithmetic operations in a single line

hi, I want to do multiple arithmetic operations in a single line. I tried with the following line total_size=`expr ($total_size + $file_size) / 1024` this line is throwing me error. Im working on korn shell. Can i know how to do multiple arithmetic operations in a single line (2 Replies)
Discussion started by: midhun19
2 Replies

4. Shell Programming and Scripting

Arithmetic but keep 2 decimal places

I am trying to perform arithmetric, for example, to increment the value of variable $a (say 3) by 0.05 but when I tried the following expression let a=a+0.05 or a=$((a+0.05)) both returned 3.0499999999999998 I want to keep 2 decimal places so it returns 3.05 instead. (6 Replies)
Discussion started by: piynik
6 Replies

5. Shell Programming and Scripting

how to do decimal arithmetic in shell script

hi, I have a file with decimal/non-decimal values $ cat b22 373 164 92 62 20 131 94 12 129 111 95 154 37 15 447 25 7.4 135 77 122 32 92 70 57 37 42 72 17 13 97 40 41 53 22 80 71 29 87 23 31 273 6.2 12K 43 44 45 22 11 7.7 13 18 173 36 20 18 13 56 67 104 53 5.4 241 19 13 3.8 38 14 31 329 16 155... (8 Replies)
Discussion started by: sam05121988
8 Replies

6. Shell Programming and Scripting

how to do arithmetic operations in one line command

I have a file like this product qty1 qty2 value cola 50 25 1 pepsi 100 75 2 muffin 25 30 0.5 would like to do the following operations with one line command 1) disply the line having "Qty1" greater than or equal to 50 2) display the line Qty1 - Qty2 ... (2 Replies)
Discussion started by: johnveslin
2 Replies

7. UNIX for Dummies Questions & Answers

arithmetic operations on 1 column of a file

Hi, I have a file with thousands of lines like this: Chr1 477515 . ACCCC ACCC 17.7 . INDEL;DP=17;AF1=1;CI95=0.5,1;DP4=0,1,0,3;MQ=32;PV4=1,0.036,1,1 Chr1 481987 . A AAAT 62 . INDEL;DP=11;AF1=1;CI95=0.5,1;DP4=0,0,1,3;MQ=41 I want to make a file with... (2 Replies)
Discussion started by: fadista
2 Replies

8. Shell Programming and Scripting

Arithmetic operations in bash,ksh,sh

Guys, The below expression is valid in which shells (sh,ksh,bash,csh)? VAR1=2 VAR2=$(($VAR1 -2)) Thanks (1 Reply)
Discussion started by: rprajendran
1 Replies

9. Shell Programming and Scripting

Need help is manipulating a file with some arithmetic operations using bash script

Friends, I have a file with contents like: interface Serial0/4/0/0/1/1/1/1:0 encapsulation mfr multilink group 101 Now I need to manipulate the file in such a way that to all the numbers less than 163, 63 gets added and to all numbers greater than 163, 63 gets deducted.(The numbers... (2 Replies)
Discussion started by: shrijith1
2 Replies

10. Shell Programming and Scripting

problem in arithmetic operations

hello all, i am having a variable with a value of 0000010000 and if i add the variable with some no: suppose i=0000010000 n=`expr $i + 1` echo $n the output i am reciving is 10001 .it deletes all the zeros but i need result as 0000010001.. please help me... thanks in... (3 Replies)
Discussion started by: ithirak17
3 Replies
Login or Register to Ask a Question