Dividing by zero


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Dividing by zero
# 1  
Old 08-26-2013
Dividing by zero

Does anyone know how to include as a script maybe an "echo" warning that explains that if a user uses the second number "zero" when dividing, that the result will BE "zero."

I need, example: 5/0 (second number) = 0, in script form.

current script:
Code:
echo "Enter a number"
read num1
echo "Enter another number"
read num2
div=$(num1 /num2)
echo "div=$div"

thanks,
joe.

Last edited by Scott; 08-26-2013 at 02:24 PM.. Reason: Please use code tags
# 2  
Old 08-26-2013
You should do some 'sanity checking' on the value of your variables before making the calculation.

Besides that, the shell won't do precision arithmetic - you will always end up with an integer.

i.e.
Code:
echo $((5/-2))
-2

# 3  
Old 08-26-2013
I *ONCE* ran echo $(($NUM/0))... needless to say it was the last time we ever saw that server.

Joke aside, I agree the only way to do this is with some validation before the actual division operation happens.

Take a look at bc if you need a more robust solution.

Last edited by verdepollo; 09-02-2013 at 02:41 AM..
This User Gave Thanks to verdepollo For This Post:
# 4  
Old 08-26-2013
A quicky from the interactive shell...
You will have to intercept the value 0 and generate your own error report, although the shell will generate its own...

Code:
Last login: Mon Aug 26 19:05:46 on console
AMIGA:barrywalker~> x=11
AMIGA:barrywalker~> y=3
AMIGA:barrywalker~> echo $((x/y)) # Integer result only...
3
AMIGA:barrywalker~> echo $((x%y)) # However the remainder is...
2
AMIGA:barrywalker~> x=9
AMIGA:barrywalker~> y=0
AMIGA:barrywalker~> echo $((x/y)) # Integer result only...
-bash: x/y: division by 0 (error token is "y")
AMIGA:barrywalker~> x=11
AMIGA:barrywalker~> y=3
AMIGA:barrywalker~> echo "Number = $((x/y))+$((x%y))/$y in fractions..."
Number = 3+2/3 in fractions...
AMIGA:barrywalker~> _


Last edited by wisecracker; 08-26-2013 at 04:08 PM.. Reason: Added fraction bit...
# 5  
Old 08-26-2013
Thanks...

...Thank you all. And thank you, "verdepollo." I should have thought about your suggestion.

joe.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Dividing a column by it's last number

Hi! I have a file as below: 0.000145 5.82056e-08 0.000146 6.82088e-08 0.000150 7.42115e-08 0.000156 8.52142e-08 0.000176 8.82169e-08 0.000178 9.82197e-08 I'd like to divide the values of the second column by its last entry (here 9.82197e-08). I would be thankful if someone could... (6 Replies)
Discussion started by: Setareh12
6 Replies

2. Shell Programming and Scripting

Dividing one file into several files

Hello, I am using Awk in UBUNTU 12.04. I have a file as follows, the first column represents the name of populations, in my real file, I have 47 populations and 2172 lines in total with about 47000 fields. ABO_1 1 2 ABO_1 1 2 ABO_2 1 1 GPO_1 1 1 GPO_1 2 2 GPO_2 1 0 GPO_2 2 0 I want... (3 Replies)
Discussion started by: Homa
3 Replies

3. Shell Programming and Scripting

Dividing two numbers in unix

Hi, I have written this code the division of two numbers and multiply it by hundred (to get the percent) echo "script running for the 1st time" cp value_directory_present.txt /home/mysql_cnbc/value_directory_past.txt rm -f test6.txt value_directory_present.txt else y1=`awk '{print $1}'... (5 Replies)
Discussion started by: arijitsaha
5 Replies

4. Shell Programming and Scripting

Issues when dividing

Hi, I do have a very simple task to divide 2 variables and display the result. I CANNOT use bc when i try var1=2 var2=4 var3=$(($var1 / $var2)) echo $var3 the output is always 0 What can I change to get a dotted decimal result such as 0.5 ? Thanks! (5 Replies)
Discussion started by: svetoslav_sj
5 Replies

5. Shell Programming and Scripting

Dividing file into columns

Hi, I have a file containing 28048 lines and I would like to split it into a a file with 3506 lines and 8 columns? In column 1, I would like to have the first 3506 lines, in columns 2 the second 3506 lines and so on. I've been looking around in the forum but I found very specific cases. Is... (1 Reply)
Discussion started by: f_o_555
1 Replies

6. UNIX for Dummies Questions & Answers

Dividing a column by it's first number

Hi! Is there an easy way (maybe using awk??) to divide the values of one column of the file by it's first entry.. If I have a column: 3 4 5 6 7 I would like to divide it by 3. I want to do this for more than 100 files, so it wouldn't be practical to open file by file and... (26 Replies)
Discussion started by: cosmologist
26 Replies

7. Shell Programming and Scripting

Dividing user Array by 2

Hello! Im trying to divid the numbers inputed by <STDIN> by 2. This is what I have: print "The input array divided by 2 is as follows:\n"; foreach ((@userArray)/2) {print} But it is not dividing by 2? Any help is valuable!! Ben (3 Replies)
Discussion started by: bigben1220
3 Replies

8. Shell Programming and Scripting

Problem with dividing

Hi All, I have two variables like below.. ETIMEHR =03 #END TIME HOUR ETIMEMIN=02 #END TIME MIN Now I'm converting the min to hour by deviding it by 60 ETIMEMINCONV=`echo "scale=2; $ETIMEMIN/60" | bc` but when i print ETIMEMINCONV instead of getting... (6 Replies)
Discussion started by: smarty86
6 Replies

9. Programming

dividing a file into two

Hi .. I have a file which contains a list of numbers like.. 1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027, 2028,2029,2030,2031,2032,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,... (2 Replies)
Discussion started by: jazz
2 Replies

10. UNIX for Dummies Questions & Answers

dividing the screen >>>

Hi! Is there is any way to divide the screen when I use UNIX shells (I have RedHat 7.1)? I have to see the command promt and process some data from very long file at the same time (I work with PThreads). Some "pseudo-windows" in text mode, huh? =) Thanks in advance and don't be angry =) (4 Replies)
Discussion started by: ShockTeam
4 Replies
Login or Register to Ask a Question